尝试在隐身模式下使用带有最新 chrome 驱动程序 117 的 selenium webdriver 下载文件时显示下载提示

问题描述 投票:0回答:2

我正在尝试使用 selenium webdriver 下载文件。我还设置了下载目录和其他参数。相同的代码适用于 chrome 驱动程序版本 116。由于浏览器版本更新到 117,代码现在失败,因为出现下载提示。但是,当我禁用隐身模式时,文件会下载到设置的下载目录路径。我正在使用 selenium 版本 3.141.59。

示例代码

包com.test;

import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.TimeUnit;

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;

public class TestDownload
{

    public static void main(String[] args)
    {
        System.setProperty("webdriver.chrome.driver", "D:\\driver\\117\\chromedriver.exe");
        Map<String, Object> prefs = new HashMap<String,Object>();
        ChromeOptions options = new ChromeOptions();
        prefs.put("download.default_directory", "D:\\driver");
        prefs.put("download.prompt_for_download", false);
        prefs.put("profile.default_content_settings.popups", 0);
        //working fine when the below line is commented
        options.addArguments("incognito");
        options.setExperimentalOption("prefs",prefs);
        WebDriver driver = new ChromeDriver(options);
        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
        driver.manage().window().maximize();
        driver.get("https://www.selenium.dev/downloads/");
        WebElement e = driver.findElement(By.linkText("4.12.1 (September 4, 2023)"));
        e.click();
        driver.close();
    }

}
java selenium-webdriver selenium-chromedriver selenium-ide
2个回答
0
投票

Chrome 更新 117 实际上导致下载到特定文件夹时出现一些问题。如果您切换到 Edge 浏览器,它将完全按照您想要的方式工作,并且您不需要对代码进行太多更改。我无法向您展示如何调整您的代码,因为我只使用 Python,但我可以说切换浏览器解决了问题。


0
投票

您可以在下面评论并尝试吗?看起来它只发生在隐身模式下。这个解决方法解决了我的问题。

options.addArguments(“隐身”);

© www.soinside.com 2019 - 2024. All rights reserved.