我是Protractor的新用户,我在使用Chrome运行测试时遇到此错误(错误显示在已启动浏览器中的地址栏下方):
您使用的是不受支持的命令行标志--ignore-certificate-errors。稳定性和安全性将受到影响。
这是我对Protractor的conf.js:
exports.config = {
seleniumAddress: 'http://localhost:4444/wd/hub',
capabilities: {
'browserName': 'chrome'
},
...
另外,我使用的是最新的Chromedriver和Selenium独立服务器(2.41.0)。现在,我没有在任何地方设置这个标志,我不记得它总是显示,所以我不确定是什么原因引起了这个问题。
有关如何解决此问题的任何想法?
答案 0 :(得分:34)
如果您使用量角器,这可能是您正在寻找的配置:
capabilities : {
browserName : 'chrome',
'chromeOptions': {
args: ['--test-type']
}
},
答案 1 :(得分:27)
自Chrome 35以来,标记--ignore-certificate-errors
已添加到“坏标记”列表中,因为它会降低浏览器的安全性。无论如何,国旗仍然有效。
如果您要禁用“不支持的标志”提示,请将--test-type
添加到您正在使用的命令行标记中。这不应该以任何其他明显的方式影响浏览器,但它用于内部测试,因此使用它需要您自担风险。
有关添加命令行标志的详细信息,请参阅Chromedriver capability docs。
答案 2 :(得分:13)
System.setProperty("webdriver.chrome.driver","<<your chrome path>>");
// To remove message "You are using an unsupported command-line flag: --ignore-certificate-errors.
// Stability and security will suffer."
// Add an argument 'test-type'
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
ChromeOptions options = new ChromeOptions();
options.addArguments("test-type");
capabilities.setCapability("chrome.binary","<<your chrome path>>");
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
driver = new ChromeDriver(capabilities);
**这对我来说也是代码**
答案 3 :(得分:7)
我认为这是一个Chromedriver问题,我已经针对Chromedriver提出了一个问题https://code.google.com/p/chromedriver/issues/detail?id=799
与此同时,您可以尝试将Chrome降级为v34。
答案 4 :(得分:2)
当我尝试运行&#34; npm run protractor&#34;时,这个错误也发生在我身上。在https://docs.angularjs.org/tutorial/step_03
的Angular教程的第3步我在MacBook Pro上运行Chrome版本35.0.1916.153。
@scheffield - 谢谢,您的解决方案对我有用。
(也可能在该教程步骤3中并不明显,但与前面的步骤一样,您仍然必须通过在下载教程的目录中打开一个新的终端窗口并发出&#34;来启动您的Web服务器。 npm start&#34;然后在一个单独的终端窗口中执行&#34; npm run protractor&#34;)。随着量角器配置调整,错误就消失了。
答案 5 :(得分:0)
适用于Ruby Bindings的本地webdriver和远程驱动程序场景的代码。这抑制了chrome35上的警告消息(请记住,你必须从http://chromedriver.storage.googleapis.com/index.html获得2.10 chromedriver.exe)
<强> Localwebdriver:强>
caps = Selenium::WebDriver::Remote::Capabilities.chrome("chromeOptions" => {"args" => ["test-type" ]})
@browser = Selenium::WebDriver.for :chrome,desired_capabilities: caps
RemoteWebDriver(使用GRID): 请注意,以下代码中的逗号分隔的ips是允许网格集线器接收selenese命令的ips。此安全层已经从chrome35和chromedriver 2.10开始实现
caps = Selenium::WebDriver::Remote::Capabilities.chrome("chromeOptions" => {"args" => ["test-type","whitelisted-ips=comma-separated-ips"]})
@browser = Selenium::WebDriver.for :remote, :url => GRID_HUB_URL,:desired_capabilities => caps
答案 6 :(得分:0)
#!/usr/bin/env node
var webdriver = require('selenium-webdriver');
var driver = new webdriver.Builder().withCapabilities({
browserName : 'chrome',
'chromeOptions': {
args: ['test-type']
}
}).build();
答案 7 :(得分:0)
Selenium使用C#.Net(Selenium + C#.Net)
public static IWebDriver Instance = null;
ChromeOptions opt = new ChromeOptions();
opt.AddArguments("--test-type");<br><br>
Instance = new ChromeDriver(@"Path To directory containing chromedriver.exe" , opt ) ;
适用于Google Chrome版本47.0.2526.106 m。
答案 8 :(得分:0)
我正在使用Java,所以我不知道这是否适合你,但它可能会有所帮助。
在我的情况下,添加.addArguments("test-type");
确实隐藏了该警告。然而,它使执行速度惊人地慢。
所以我用以下内容替换了该行,并且工作正常!
options.addArguments("excludeSwitches", "ignore-certificate-errors");