Java+Selenium更改Chrome默认下载存储路径(使用Chrome浏览器自动下载文件并保存到指定的文件路径)

278人浏览 / 0人评论

直接上代码:

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();
	}
}

 

全部评论