在本节,将介绍Web页面常见和一些弹出窗口,如上传文件和弹出窗口。而大部分的弹出窗口,如选择和上传文件,大都使用的是本地的Windows窗口,而Selenium仅能操作浏览器,这样就对测试形成了挑战。Selenium API处理弹出窗口的主要是IAlert接口,详细如下所示:
文件上传
下图是一种常见的文件上传弹出窗口:
HTML源码如下:
请选择上传文件:
相应的定位代码如下:
string filePath = @"C:\类和对象.jpg";
driver.FindElement(By.Id("fileUpload")).SendKeys(filePath);
在以上的代码里面,直接将上传的文件路径写成绝对路径了,这样做灵活性不够,扩展性较差,并不推荐。建议在做测试的时候,将测试文件放在测试项目里面,这样我们就可以使用相对路径来选择文件。示例代码如下:
string filPath = MyClass.GetFilePath() + @"testData\类和对象.jpg";
driver.FindElement(By.Id("fileUpload")).SendKeys(filePath);
JavaScript弹出窗口
JavsScript弹出窗口是通过使用Javascript创建,主要用来确认操作和提示消息。一种常见的弹出框如下所示:
HTML源码如下:
请选择上传文件: