如何使用Selenium和ChromeDriver下载文件

iyzzxitl  于 2023-06-19  发布在  Go
关注(0)|答案(3)|浏览(156)

我有一个网站要用selenium和ChromeDriver(在windows上)进行测试,在那里我喜欢测试导出数据并再次导入的功能。
导出将创建一个XML文件,并将其下载到用户的计算机上。当使用webdriver运行此程序时,Chrome会询问我是保留文件还是丢弃它,因为它可能是一个潜在的威胁。
如何在测试中关闭此行为?有没有一个chrome设置我可以使用,这样一个文件是无论什么下载?
谢谢

laik7k3q

laik7k3q1#

试试这个,在windows上执行
How to control the download of files with Selenium Python bindings in Chrome

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
options.add_experimental_option("prefs", {
  "download.default_directory": r"C:\Users\xxx\downloads\Test",
  "download.prompt_for_download": False,
  "download.directory_upgrade": True,
  "safebrowsing.enabled": True
})
qij5mzcb

qij5mzcb2#

下面的程序将帮助您在Chrome中下载具有所需功能的文件。这是一个丰富的类有很多实用程序,你可以通过它在你的空闲时间。

public class DownloadChromeFile {
       public static void main(String[] args) {
       System.setProperty("webdriver.chrome.driver","./chromedriver.exe");
       String downloadFilepath = "c:\\download";

       HashMap<String, Object> chromePrefs = new HashMap<String, Object>();
       chromePrefs.put("profile.default_content_settings.popups", 0);
       chromePrefs.put("download.default_directory", downloadFilepath);
       ChromeOptions options = new ChromeOptions();
       HashMap<String, Object> chromeOptionsMap = new HashMap<String, Object>();
       options.setExperimentalOption("prefs", chromePrefs);
       options.addArguments("--test-type");
       options.addArguments("--disable-extensions"); //to disable browser extension popup

       DesiredCapabilities cap = DesiredCapabilities.chrome();
       cap.setCapability(ChromeOptions.CAPABILITY, chromeOptionsMap);
       cap.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true); // Bydefault it will accepts all popups.
       cap.setCapability(ChromeOptions.CAPABILITY, options);
       driver = new ChromeDriver(cap);  
                driver.get("Your Application Url");
                driver.findElement(By.xpath("Export Button xpath")).click();
        }
}
7y4bm7vi

7y4bm7vi3#

我已经详细展示了here,如何使用SeleniumChrome和Firefox中下载任何 * 可能有害 * 的文件时避免任何警告/弹出窗口。按照以下步骤操作(* 在Windows和Linux* 中的Chrome和Firefox v113 + Selenium 4.9.1 + Java 8中测试和验证)

HashMap<String, Object> chromePrefs = new HashMap<String, Object>();
chromePrefs.put("safebrowsing.enabled","true");
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("prefs", chromePrefs);

相关问题