红联Linux门户
Linux帮助

Webdriver关于Firefox中的自动下载文件

发布时间:2016-07-22 23:55:27来源:linux网站作者:zhouran_516@126
问题描述:在做一个项目测试中,需要在页面中下载一些文件,然后自动保存到目录中。查询了大量的资料,但是能够参见的有限。
测试环境:Ubuntu, Firefox
解决:
FirefoxProfile profile = new FirefoxProfile();  
profile.setPreference("browser.download.downloadDir", "/home/jenny/Downloads");  
profile.setPreference("browser.download.defaultFolder", "/home/jenny/Downloads");  
profile.setPreference("browser.helperApps.neverAsk.saveToDisk", "application/octet-stream, application/vnd.ms-excel, text/csv, application/zip");  
driver = new FirefoxDriver(profile);
我这里设置到保存到默认的目录Downloads.
 
但是问题来了,发现脚本运行到下载保存的窗口时,始终指向的是打开文件,而不是我所希望的Save to,选项,然后我选择手动选择了Save to, 和第3个选项,以为下次就可以默认选择save to了,但是运行的结果却不是。因为WebDriver driver = new FirefoxDriver(),这样Selenium Server启动的Firefox将是一个全新的,不做了设置的Firefox
 
解决:使用自定义Firefox Profile运行测试
1.把firefox关了,执行‘firefox -ProfileManager’命令再create profile,这里我新建的profile名字为:selenium
2.打开你要操作的页面,然后设置download的选项,默认设置为Save to选项。
3.在代码中使用如下方式启动FirefoxDriver
ProfilesIni allProfiles = new ProfilesIni();  
// "selenium" 是我们之前创建的profile
FirefoxProfile profile = allProfiles.getProfile("selenium");  
WebDriver driver = new FirefoxDriver(profile); 
这样就解决了。
 
本文永久更新地址:http://www.linuxdiyf.com/linux/22621.html