量角器错误消息"不支持的命令行标志"在Chrome?

时间:2014-05-21 00:07:43

标签: javascript node.js selenium mocha protractor

我是Protractor的新用户,我在使用Chrome运行测试时遇到此错误(错误显示在已启动浏览器中的地址栏下方):

  

您使用的是不受支持的命令行标志--ignore-certificate-errors。稳定性和安全性将受到影响。

这是我对Protractor的conf.js:

exports.config = {

seleniumAddress: 'http://localhost:4444/wd/hub',
capabilities: {
    'browserName': 'chrome'  
},

...

另外,我使用的是最新的Chromedriver和Selenium独立服务器(2.41.0)。现在,我没有在任何地方设置这个标志,我不记得它总是显示,所以我不确定是什么原因引起了这个问题。

有关如何解决此问题的任何想法?

9 个答案:

答案 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");