selenium测试(Java)--下载文件(十六)
Posted qingxin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了selenium测试(Java)--下载文件(十六)相关的知识,希望对你有一定的参考价值。
下载文件需要在Firefox 的profile属性中配置一些参数,如下面的代码:
package com.test.download; import java.io.File; import org.openqa.selenium.By; import org.openqa.selenium.javascriptExecutor; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.firefox.FirefoxProfile; public class DownloadTest { public static void main(String[] args) { FirefoxProfile profile = new FirefoxProfile(); // 可以在Firefox浏览器地址栏中输入about:config来查看属性 // 设置下载文件放置路径,注意如果是windows环境一定要用\\\\,用/不行 String path = "D:\\\\10-selenium\\\\workspace\\\\SeleniumTest\\\\src\\\\com\\\\test\\\\download\\\\down"; String downloadFilePath = path + "\\\\d.exe"; File file = new File(downloadFilePath); if (file.exists()) { file.delete(); } // 配置响应下载参数 profile.setPreference("browser.download.dir", path);// 下载路径 profile.setPreference("browser.download.folderList", 2);// 2为保存在指定路径,0代表默认路径 profile.setPreference("browser.download.manager.showWhenStarting", false);// 是否显示开始 // 禁止弹出保存框,value是文件格式,如zip文件 profile.setPreference("browser.helperApps.neverAsk.saveToDisk", "application/zip,text/plain,application/vnd.ms-excel,text/csv,text/comma-separated-values,application/octet-stream,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.openxmlformats-officedocument.wordprocessingml.document"); //关于类型:可以参考http://www.w3school.com.cn/media/media_mimeref.asp WebDriver driver = new FirefoxDriver(profile); driver.get("file:///D:/10-selenium/workspace/SeleniumTest/src/com/test/download/download.html"); driver.manage().window().maximize(); driver.findElement(By.linkText("下载")).click(); waitTime(3000); String js_exist = "alert(\\"download successfully\\")"; String js_not_exist = "alert(\\"download unsuccessfully\\")"; if (file.exists()) { ((JavascriptExecutor) driver).executeScript(js_exist); } else { ((JavascriptExecutor) driver).executeScript(js_not_exist); } waitTime(5000); // driver.quit(); } static public void waitTime(int time) { try { Thread.sleep(time); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
使用到的页面例子:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>download</title>
</head>
<body>
<a href="d.exe">下载</a>
</body>
</html>
测试代码结构:
以上是关于selenium测试(Java)--下载文件(十六)的主要内容,如果未能解决你的问题,请参考以下文章
软件测试 实验02 MAC环境下Firefox配置selenium java读取xlsx文件