簡體   English   中英

如何在最新的Chrome驅動程序Ver:2.40中啟用Headless Chrome中的下載文件

[英]How to enable Download file in Headless Chrome in the latest Chrome Driver Ver: 2.40

設置setHeadless(false)時,我的代碼工作正常,但在無頭模式下則不行。 我在很多地方搜索過,沒有任何幫助。 此問題已記錄在Github中 ,但仍處於“打開”狀態。 我正在使用Java Selenium。

注意:我嘗試了所有可能的代碼,這些代碼已經發布在https://stackoverflow.com中。截圖並檢查了行為,它正在移動並單擊導出圖標鏈接,但文件未下載。

我的代碼如下:

System.setProperty("webdriver.chrome.driver",
            "./Driver/chromedriver.exe");

ChromeOptions options = new ChromeOptions();

options.setHeadless(true);

options.addArguments("--disable-gpu");

options.addArguments("window-size=1600x900");

HashMap<String, Object> chromePrefs = new HashMap<String, Object>();
chromePrefs.put("profile.default_content_settings.popups", 0);
chromePrefs.put("download.default_directory", downloadFilepath);
chromePrefs.put("browser.setDownloadBehavior", "allow");
options.setExperimentalOption("prefs", chromePrefs);  

driver = new ChromeDriver(options);     
driver.get(Url);
driver.manage().window().maximize();

WebElement export = driver.findElement(By
        .xpath("//*[@id='cssmenu1']/li[1]"));

try {
    Actions act = new Actions(driver);
    act.moveToElement(export).build().perform(); 
    act.click(export).build().perform();

} catch (Exception e) {
    // TODO: handle exception
    System.out.println(e);
}

在實例化驅動程序之后,我能夠讓這個為我工作。

    var paramList = new Dictionary<string, object>();
    paramList.Add("behavior", "allow");
    paramList.Add("downloadPath", GlobalConfig.DownloadsDirectoryPath);
    driver.ExecuteChromeCommand("Page.setDownloadBehavior", paramList);

使用這些包:
Selenium.Chrome.WebDriver v2.35.0
Selenium.WebDriver v3.10.0
Appium.WebDriver v4.0.0.1-beta
Chrome版本72.0.3626.121

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM