I'm using selenium chromedriver for automating web application. In my application, I need to download xml files. But when I download xml file, I get 'This type of file can harm your computer' pop up. I want to disable this pop up using selenium chromedriver and I want these type of files to be downloaded always. How can this be done?
Selenium 版本:2.47.1
Chromedriver 版本:2.19
更新是 2012 年的long standing Chrome bug。
与 XML 文件的问题开始发生在我的 Chrome 47.0.2526.80 米后花费也许 6 小时试图关闭每一个可能的安全选项,我尝试了不同的方法。
具有讽刺意味的是,打开Chrome 选项"Protect you and your device from erous 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
像这样启动浏览器,启用safebrowsing
选项,下载 xml 文件而没有消息警告。对于任何编程语言的 Selenium,原理应该是相同的。
在最新版本的 Google Chrome 中,上述解决方案是不够的。此外,有必要使用以下开关启动浏览器:
--safebrowsing-disable-download-protection
现在,启动浏览器的代码看起来像这样:
b = Watir::Browser.new :chrome, :prefs => prefs, :switches => %w[--safebrowsing-disable-download-protection]))
我在下面发布完整的代码,让文件下载为我工作:希望它有帮助:-) 我使用 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);
以下 Pytn 代码对我有用
chromeOptions = webdriver.ChromeOptions()
prefs = {'safebrowsing.enabled': 'false'}
chromeOptions.add_experimental_option("prefs", prefs)
driver = webdriver.Chrome(chrome_options=chromeOptions)
最近更新 Chrome 后,accepted answer停止工作。现在,您需要使用--safebrowsing-disable-extension-blacklist
和--safebrowsing-disable-download-protection
命令行开关。这是适用于我的WebdriverIO配置:
var driver = require('webdriverio');
var client = driver.remote({
desiredCapabilities: {
browserName: 'chrome',
chromeOptions: {
args: [
'disable-extensions',
'safebrowsing-disable-extension-blacklist',
'safebrowsing-disable-download-protection'
],
prefs: {
'safebrowsing.enabled': true
}
}
}
});
请注意,我也禁用扩展,因为它们通常会干扰自动测试,但这并不是解决下载 XML 和 JavaScript 文件的问题所必需的。
我通过阅读this list找到了这些开关,您也可以在Chromium source中看到它们。
本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处
评论列表(7条)