Selenium2自动化测试:让Firefox无提示地上传、下载保存文件

场景:自动化测试某Web应用的功能,需要从页面下载保存文件,供后续上传操作使用。

问题:上传文件:

driver.findElement(By.name("file1")).sendKeys("D:\\xx.cer");

注意,sendKeys前不要手欠儿地去clear,file不同于text input。

下载文件时,浏览器弹出的选择/保存文件框,Selenium2是无法控制的。手动测试时,保存文件、选择文件这些步骤问题不大,那自动化测试咋办?

解决办法:1. 使用AutoIT,查找、控制保存文件、选择文件的窗口。麻烦,不采用。

2. Firefox支持通过配置(地址栏打:about:config可看到Firefox内置支持的配置选项),来实现静默下载保存文件。

你可以通过程序来控制Firefox配置,代码如下:

    DesiredCapabilities capability = new DesiredCapabilities();
    capability.setBrowserName(browserName);

    //  http://www.educity.cn/wenda/114693.html
    FirefoxProfile firefoxProfile = new FirefoxProfile();
    ProfilesIni allProfiles = new ProfilesIni();

    if(allProfiles.getProfile(FIREFOX_PROFILE)){
        firefoxProfile = allProfiles.getProfile(FIREFOX_PROFILE);
        println("服务器上找到了名为" + FIREFOX_PROFILE  + "的Firefox配置。")
    }else{
        println("服务器上未找到名为" + FIREFOX_PROFILE  + "的Firefox配置,使用客户端默认配置。")
    }

    firefoxProfile.setPreference("browser.download.folderList",2);
    firefoxProfile.setPreference("browser.download.manager.showWhenStarting",false);
    Properties pro2 = readPropertiesFileObj("conf/temp.properties");    
    firefoxProfile.setPreference("browser.download.dir",pro2.getProperty("temp_dir"));
 // firefox下载目录 
//  firefoxProfile.setPreference("browser.download.dir","D:\\Temp\\");

    //免提示下载的文件类型参考: http://www.w3school.com.cn/media/media_mimeref.asp
    firefoxProfile.setPreference("browser.helperApps.neverAsk.saveToDisk","application/x-x509-ca-cert");

    firefoxProfile.setPreference("browser.helperApps.alwaysAsk.force", false);
   // 设置脚本无响应提示时间 =0 : 不提示
   firefoxProfile.setPreference("dom.max_script_run_time", 0);

   // 禁止firefox 检查组件兼容性
   firefoxProfile.setPreference("extensions.checkCompatibility.temporaryThemeOverride_minAppVersion", false);

  capability.setCapability(FirefoxDriver.PROFILE, firefoxProfile); driver = new RemoteWebDriver(new URL(url), capability);

说明:最终得到一个driver,使用这个driver去执行自动化测试用例,你会发现下载.cer格式的文件时,浏览器未出现任何提示,就把文件下载保存到了D:\\Temp\\下。

如果想要无提示下载保存其他格式的文件,可参考http://www.w3school.com.cn/media/media_mimeref.asp,修改 browser.helperApps.neverAsk.saveToDisk的值即可。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值