美文网首页软件测试软件测试自动化测试
使用Selenium更改Chrome默认下载存储路径(使用Chr

使用Selenium更改Chrome默认下载存储路径(使用Chr

作者: 软测小生 | 来源:发表于2018-07-25 18:31 被阅读30次

原文:软测小生ruancexiaosheng
CSDN博客原文

image.png

上一篇博客写到当不能使用Selenium来操作上传下载接面的时候,我们使用第三方AutoIt来搞定。
Java+Selenium2+autoIt 实现Chrome右键文件另存为 功能

接下来我我要记录一下今天学的使用Selenium更改Chrome默认下载存储路径,当然前提是在网页上有下载链接直接点击就会下载的,若不更改的话就会保存到Chrome默认下载路径下,有的时候为了方便或是后续的使用,我们需要更改一下保存路径,或者是将保存的文件路径进行动态、参数化的去传入,而不是固定的。

TestCase:
到Python的官网,
下载selenium-3.13.0.tar.gz(版本可能会变化)到指定的文件路径D:/dataSource/outputReport/Downloads

image.png

比较简单,直接上代码吧。

import java.util.HashMap;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.AfterClass;
import org.testng.annotations.Test;

public class testChromeDownload {
WebDriver driver;

@Test
public void testOne() throws Exception {            
    //使用Chrome浏览器自动下载文件并保存到指定的文件路径
    //或 使用Selenium更改Chrome默认下载存储路径
    System.setProperty("webdriver.chrome.driver", "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chromedriver.exe");//设置驱动的路径   
    DesiredCapabilities caps = setDownloadsPath();//更改默认下载路径        
    driver = new ChromeDriver(caps);
    driver.manage().window().maximize();
    driver.get("https://pypi.org/project/selenium/#files");//到目标网页      
    WebElement myElement = driver.findElement(By.xpath("//a[contains(text(),'selenium-3.13.0.tar.gz')]"));
    Actions action = new Actions(driver);
    myElement.click();//点击下载
    Thread.sleep(10000);
}

//单独重构成一个方法,然后调用
public DesiredCapabilities setDownloadsPath() {
    String downloadsPath = "D:\\dataSource\\outputReport\\Downloads";
    HashMap<String, Object> chromePrefs = new HashMap<String, Object>();
    chromePrefs.put("download.default_directory", downloadsPath);
    ChromeOptions options = new ChromeOptions();
    options.setExperimentalOption("prefs", chromePrefs);
    DesiredCapabilities caps = new DesiredCapabilities();
    caps.setCapability(ChromeOptions.CAPABILITY, options);
    return caps;
}

@AfterClass
public void tearDown(){
    driver.quit();
}

}

相关文章

网友评论

    本文标题:使用Selenium更改Chrome默认下载存储路径(使用Chr

    本文链接:https://www.haomeiwen.com/subject/zgrmmftx.html