如何禁用"此类文件可能会损害您的计算机"弹出窗口

Mos*_*hta 20 selenium selenium-chromedriver

我正在使用selenium chromedriver来自动化Web应用程序.在我的应用程序中,我需要下载xml文件.但是当我下载xml文件时,我会弹出"这种类型的文件可能会损害您的计算机".我想使用selenium chromedriver禁用此弹出窗口,我希望始终下载这些类型的文件.如何才能做到这一点? 在此输入图像描述

  • 硒版:2.47.1
  • Chromedriver版本:2.19

更新它是2012年的长期Chrome漏洞.

fin*_*ing 17

从Chrome 47.0.2526.80米开始,我就开始遇到XML文件的问题.在花了6个小时试图关闭所有可能的安全选项后,我尝试了一种不同的方法.

讽刺的是,它似乎打开上的Chrome浏览器选项"Protect you and your device from dangerous sites"删除消息"This type of file can harm your computer. Do you want to keep file.xml anyway?"

我使用'Ruby'和'Watir-Webdriver',代码如下所示:

prefs = {
    'safebrowsing' => {
        'enabled' => true,
    }
}

b = Watir::Browser.new :chrome, :prefs => prefs
Run Code Online (Sandbox Code Playgroud)

像这样启动浏览器,safebrowsing启用选项后,下载xml文件而不显示消息警告.对于任何编程语言的Selenium,原则应该是相同的.

##### 编辑:13-04-2017

在最新版本的Google Chrome中,上述解决方案还不够.此外,必须使用以下开关启动浏览器:

--safebrowsing-disable-download-protection
Run Code Online (Sandbox Code Playgroud)

现在,启动浏览器的代码如下所示:

b = Watir::Browser.new :chrome, :prefs => prefs, :switches => %w[--safebrowsing-disable-download-protection]))
Run Code Online (Sandbox Code Playgroud)

  • 根据[chromedriver/capabilities](https://sites.google.com/a/chromium.org/chromedriver/capabilities)示例,它应该是这样的:`ChromeOptions options = new ChromeOptions(); Map <String,Object> prefs = new HashMap <String,Object>(); prefs.put("safebrowsing.enabled","true"); options.setExperimentalOption("prefs",prefs); ChromeDriver chromeDriver =新的ChromeDriver(选项);` (3认同)
  • 在 python 中工作:`opts = webdriver.ChromeOptions(); opts.add_experimental_option('prefs', {'safebrowsing.enabled': True}); opts.add_argument('--safebrowsing-disable-download-protection'); 驱动程序 = webdriver.Chrome(chrome_options=opts)` (2认同)

小智 5

我在下面发布了让文件下载对我有用的完整代码:希望它有帮助:-) 我正在使用 Java-Selenium

System.setProperty("webdriver.chrome.driver", "C:/chromedriver/chromedriver.exe");
        String downloadFilepath = "D:/MyDeskDownload";
        HashMap<String, Object> chromePrefs = new HashMap<String, Object>();
        chromePrefs.put("profile.default_content_settings.popups", 0);
        chromePrefs.put("download.default_directory", downloadFilepath);
        chromePrefs.put("safebrowsing.enabled", "true"); 
        ChromeOptions options = new ChromeOptions();
        options.setExperimentalOption("prefs", chromePrefs);
        DesiredCapabilities cap = DesiredCapabilities.chrome();
        cap.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
        cap.setCapability(ChromeOptions.CAPABILITY, options);
        WebDriver driver = new ChromeDriver(cap);
Run Code Online (Sandbox Code Playgroud)


小智 5

以下 Python 代码对我有用

chromeOptions = webdriver.ChromeOptions()
prefs = {'safebrowsing.enabled': 'false'}
chromeOptions.add_experimental_option("prefs", prefs)
driver = webdriver.Chrome(chrome_options=chromeOptions)
Run Code Online (Sandbox Code Playgroud)