java与自动化的应用实例_WebDriver应用实例(java)——自动化下载文件

目的:下载链接的时候,通常需要人为地设定下载文件保存的路径,这样就无法实现全自动化执行下载过程。

被测试网页的网址:http://ftp.mozilla.org/pub/firefox/releases/35.0b8/win32/zh-CN/

实例代码:package cn.om.webdriverapi;

import org.testng.annotations.Test;

import org.testng.annotations.BeforeMethod;

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.firefox.FirefoxDriver;

import org.openqa.selenium.firefox.FirefoxProfile;

import org.testng.annotations.AfterMethod;

public class TestAutoFileDownload {

public static String downloadFilePath = "C:\\Users\\oumin1\\下载";

WebDriver driver;

String baseURL;

@Test

public void testFileDownload() {

driver=new FirefoxDriver(FirefoxDriverProfile());

driver.get(baseURL);

//单击包含“Stub”关键字的下载链接

driver.findElement(By.partialLinkText("Stub")).click();

//设定10秒中的延迟,让程序下载完成。如果网络下载很慢,可以根据预估的下载完成时间

//设定暂停时间

try {

Thread.sleep(5000);

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

public static FirefoxProfile FirefoxDriverProfile() {

// 声明一个profile对象

FirefoxProfile profile = new FirefoxProfile();

// 设置FireFox的browser.download.folderList属性为2

// 如果没有进行显示设定,则默认为1.表示下载文件保存在“下载”文件夹中。

// 如果设置为0,表示保存在用户的桌面。

// 设置为2,表示保存到用户指定的文件夹中

profile.setPreference("browser.download.folderList", 2);

// browser.download.manager.showWhenStarting的属性默认值为true

// 设置为true,则用户启动下载的时候显示Firefox浏览器的文件下载窗口

// 设置为false,则用户启动下载的时候不显示Firefox浏览器的文件下载窗口

profile.setPreference("browser.download.manager.showWhenStarting", false);

// browser.download.dir设定下载文件保存的目录

profile.setPreference("browser.download.dir", downloadFilePath);

// browser.helperApps.neverAsk.openFile表示直接打开下载文件,不显示确认框

// 默认值为空字符串,下列代码设定了多重文件的MIME类型

// 例如,application/exe表示.exe类型的文件,application/excel表示Excel类型的文件

profile.setPreference("browser.helperApps.neverAsk.openFile",

"application/octet-streamapplicaton/exe,text/csv,application/pdf,application/x-msexcel,application/excel,application/x-excel,application/excel,application/x-excel,application/excel,application/vnd.ms-excel,application/x-excel,application/x-msexcel,image/png,image/jpeg,text/html,text/plain,application/msword,application/xml,application/excel,application/x-msdownload");

// browser.helperApps.neverAsk.saveToDisk表示下载文件师是否直接保存到磁盘

profile.setPreference("browser.helperApps.neverAsk.saveToDisk",

"application/octet-streamapplicaton/exe,text/csv,application/pdf,application/x-msexcel,application/excel,application/x-excel,application/excel,application/x-excel,application/excel,application/vnd.ms-excel,application/x-excel,application/x-msexcel,image/png,image/jpeg,text/html,text/plain,application/msword,application/xml,application/excel,text/x-c,application/x-msdownload");

// browser.helperApps.alwaysAsk.force对于未知的MIME类型文件会弹出窗口让用户处理

// 默认值为true。设置为false表示不会记录打开未知MIME类型文件的方式。

profile.setPreference("browser.helperApps.alwaysAsk.force", false);

// 下载.exe文件弹出警告,默认值是true,设定为false则不会弹出警告框

profile.setPreference("browser.download.manager.alertOnEXEOpen", false);

// browser.download.manager.focusWhenStarting设定下载狂在下载时会获取焦点

// 默认为true。设为false表示不获取焦点

profile.setPreference("browser.download.manager.focusWhenStarting", false);

// borwser.download.manager.useWindow表示下载是否显示下载框

// 默认为true。设置为false会把下载框隐藏

profile.setPreference("browser.download.manager.useWindow", false);

// browser.download.manager.showAlertOnComplete设定下载文件结束后是否显示下载完成提示框

// 默认值为true,设定为false表示不显示。

profile.setPreference("browser.download.manager.showAlertOnComplete", false);

// browser.download.manager.closeWhenDone设定下载结束后是否自动关闭下载框

// 默认为true,设置为false表示不关闭下载管理器

profile.setPreference("browser.download.manager.closeWhenDone", false);

return profile;

}

@BeforeMethod

public void beforeMethod() {

baseURL = "http://ftp.mozilla.org/pub/firefox/releases/35.0b8/win32/zh-CN/";

System.setProperty("webdriver.firefox.bin", "D:/Mozilla Firefox/firefox.exe");

}

@AfterMethod

public void afterMethod() {

driver.quit();

}

}         在自动化测试过程中,经常会遇到设置了下载文件的MIME类型,但是测试过程执行的时候依旧会显示下载弹出窗,并且需要人为介入处理。产生上述情况主要是因为网站服务器可能给一些类型文件定义为了其他的MIME类型。因此我们可以借助一些浏览器插件,如FirePath中的网络功能,可以从http信息头中找到文件的MIME类型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值