Java Selenium - 如何使用新的无头模式删除弹出的下载菜单?

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

有谁知道使用新的无头模式在 Microsoft Edge 中完成下载后删除下载菜单弹出的参数是什么?我的 selenium 程序需要 Microsoft Edge 作为网络驱动程序,因此我无法使用 Chrome 或 Firefox 网络驱动程序。但如果大家有什么想法,请告诉我,谢谢!

到处寻找我可以设置的参数列表,但找不到与禁用下载菜单弹出相关的任何参数。

编辑以包含示例代码:

以下是示例代码。在此示例中,使用的 url 是最新 Microsoft Edge Webdriver 的下载链接:

public static void main(String args[]) {
    System.setProperty("webdriver.edge.driver","src/main/resources/msedgedriver.exe");

    EdgeOptions options = new EdgeOptions();
    options.addArguments("headless=new");
    options.addArguments("--window-size=1920,1080");
    options.addArguments("--start-maximized");
    options.addArguments("--inprivate");
    options.addArguments("--disable-popup-blocking");
    // options.addArguments("___argument to disable download menu___");
        
    EdgeDriver driver = new EdgeDriver(options);
    driver.get("https://msedgedriver.azureedge.net/115.0.1860.0/edgedriver_win64.zip");
}

第二次编辑以包含屏幕截图 Screenshot of Download Popup

java selenium-webdriver microsoft-edge headless
2个回答
3
投票

当我处于新的无头模式时,我无法拥有此浏览器 UI,但如果您想阻止该下载菜单,您可以尝试以下代码:

    Map<String, Object> prefs = new HashMap<String, Object>();
    prefs.put("browser.show_hub_popup_on_download_start", false);
    options.setExperimentalOption("prefs", prefs);

0
投票

感谢 Kendrick Li,我在 C# 中遇到了同样的问题,下面的代码有效。

 var options = new EdgeOptions();
 options.AddArgument("headless=new");
 options.AddUserProfilePreference("download.default_directory", downloadDirectory);
 options.AddUserProfilePreference("download.prompt_for_download", false);
 options.AddUserProfilePreference("directory_upgrade", true);
 options.AddUserProfilePreference("browser.show_hub_popup_on_download_start", false);
 var driver = new (options);
© www.soinside.com 2019 - 2024. All rights reserved.