selenium java 文件上传、下载
1.webdriver对页面文件的下载
我们一般操作浏览器下载时会让我们选择下载的目录然后经过一系列操作后才进行文件下载操作,但是用webdriver不能按这样的方式操作。经过查询资料找到了如下的实现方式。首先在初始化浏览器对象时需要设置浏览器的配置文件。需要先配置browser.download.folderList设置为2,默认为0表示默认现在路径,设置为2时是保存到指定目录。browser.download.manager.showWhenStarting
这是设置是否显示开始框用的,我们默认设置为false;browser.download.dir
这个是设置保存文件下载的位置,最后是最重的属性:
browser.helperApps.neverAsk.saveToDisk,这是设置文件下载的类型的。
如果这个配置与所下载类型不符合的话,下载会出现问题。
具体实例如下:
firefoxprofile = new FirefoxProfile();
firefoxprofile.setPreference("browser.download.folderList", 2);
firefoxprofile.setPreference("browser.download.manager.showWhenStarting",false);
firefoxprofile.setPreference("browser.download.dir", "C:\\自动化");
firefoxprofile.setPreference("browser.helperApps.neverAsk.saveToDisk", "application/octet-stream,"+ " application/vnd.ms-excel, text/csv, application/zip, application/exe");
driver = new FirefoxDriver(firefoxprofile);
2.webdriver实现文件上传
一般在页面上传文件的插件会弹出一个选择文件位置,这对于我们自动化测试来说是个难题。一般有两种解决方法(1)使用autoit工具来模仿鼠标操作点击页面弹出来的插件选择文件位置。该方法有个缺点就是极不稳定而且和屏幕分辨率有关,所以不多叙述(2)通过页面元素找到插件位置,在input的标签对中输入文件所在位置来达到上传文件的效果。下面就来仔细讲解一下这方面我的个人见解。
首先我们需要页面中定位到对应上传文件的按钮,
找到这个元素后使用sendKeys()的方法将你所需上传文件的绝对路径名输入进去,就达到了选择文件的目的。