【问题标题】:Protractor error message "unsupported command-line flag" in Chrome?Chrome中的量角器错误消息“不支持的命令行标志”?
【发布时间】:2014-07-09 10:20:10
【问题描述】:

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

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

这是我的量角器 conf.js:

exports.config = {

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

...

另外,我正在使用带有最新可用 Chrome 驱动程序和 Selenium 独立服务器 (2.41.0) 的 Mac。现在,我没有在任何地方设置这个标志,而且我不记得它总是显示,所以我不确定是什么导致了这个问题。

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

【问题讨论】:

  • 我今天也刚开始收到这个。我想知道 Chrome 是否在后台更新并且在这种情况下不再正常工作。我将“browserName”:“chrome”更新为“browserName”:“firefox”。我注意到失败的测试会使用 Firefox 转储更好的信息,所以我还是会继续使用 Firefox。
  • 遇到同样的问题,这个标志是在哪里设置的?有人知道吗?
  • 我今天(2017-04-03)才开始得到这个,尽管我的水豚套件上周工作了。呸呸

标签: javascript node.js selenium mocha.js protractor


【解决方案1】:

我正在使用 Java,所以我不知道这是否适合您,但它可能会有所帮助。

就我而言,添加 .addArguments("test-type"); 确实隐藏了该警告。但是,它使执行速度非常慢。

所以我用以下代码替换了该行,它运行良好!

options.addArguments("excludeSwitches", "ignore-certificate-errors");

【讨论】:

    【解决方案2】:

    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。

    【讨论】:

      【解决方案3】:
      #!/usr/bin/env node
      var webdriver = require('selenium-webdriver');
      var driver = new webdriver.Builder().withCapabilities({
          browserName : 'chrome',
          'chromeOptions': {
              args: ['test-type']
          }
      }).build();
      

      【讨论】:

        【解决方案4】:

        当我尝试在 https://docs.angularjs.org/tutorial/step_03 的 Angular 教程的第 3 步上运行“npm run protractor”时,我也发生了这个错误

        我在 MacBook Pro 上运行 Chrome 版本 35.0.1916.153。

        @scheffield - 谢谢,您的解决方案对我有用。

        (此外,在教程第 3 步中可能并不明显,但与前面的步骤一样,您仍然需要通过在下载教程的目录中打开一个新的终端窗口并发出“npm start”来启动您的 Web 服务器. 然后在一个单独的终端窗口中执行“npm run protractor”)。通过量角器配置调整,错误消失了。

        【讨论】:

        • 谢谢@David Barrows,我的情况与您的情况完全相同,您的回答帮助我解决了问题。
        • 我尝试在没有运行 Web 服务器的情况下运行 Protractor,但出现上述错误。我花了几分钟才意识到 Protractor 要求服务器在测试期间运行,而 Karma 不需要。
        【解决方案5】:

        适用于 Ruby 绑定的本地 webdriver 和远程驱动程序方案的代码。这抑制了 chrome35 上的警告消息(请记住,您必须从 http://chromedriver.storage.googleapis.com/index.html 获取 2.10 chromedriver.exe)

        本地网络驱动程序:

        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】:

          如果您使用 Protractor,这可能是您正在寻找的配置:

          capabilities : {
              browserName : 'chrome',
              'chromeOptions': {
                  args: ['--test-type']
              }
          },
          

          【讨论】:

          【解决方案7】:

          标志 --ignore-certificate-errors 自 Chrome 35 起已添加到“不良标志”列表中,因为它降低了浏览器的安全性。无论如何,该标志仍​​然有效。

          如果您想禁用“不支持的标志”提示,请将--test-type 添加到您正在使用的命令行标志中。这应该不会以任何其他明显的方式影响浏览器,但它用于内部测试,因此使用它需要您自担风险。

          有关添加命令行标志的更多信息,请参阅Chromedriver capability docs

          【讨论】:

          • 您能详细说明一下吗?由于这个问题,我的测试不再有效。我尝试使用以下命令从命令行启动量角器,但没有任何运气:>node node_modules\grunt-protractor-runner\node_modules\protractor\bin\webdriver-manager start --test-type
          • --test-type 实际上并没有抑制消息,至少对我来说是这样。
          • 在哪里可以找到“坏标志列表”?
          【解决方案8】:
          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);
          

          **这对我也有用这里是代码**

          【讨论】:

          • 我的系统无法识别 DesiredCapabilities 或 ChromeOptions。错误:无法解析为类型。
          • 另外构造函数 ChromeDriver(Capabilities) 已被弃用。
          【解决方案9】:

          我认为这是一个 Chromedriver 问题,我已经针对 Chromedriver https://code.google.com/p/chromedriver/issues/detail?id=799提出了一个问题

          与此同时,您可以尝试将 Chrome 降级到 v34。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2015-06-09
            • 2018-08-11
            • 2014-08-01
            • 2014-07-21
            • 2014-09-12
            • 2016-12-09
            • 2019-12-11
            • 1970-01-01
            相关资源
            最近更新 更多