不支持的命令行标志:--ignore-certificate-errors(在Ruby中)

时间:2014-07-21 21:02:58

标签: ruby selenium selenium-chromedriver

在RubyMine中使用Ruby 2.0.0 p481和chromedriver 2.10

当Chrome启动时,它会在黄色弹出栏中显示一条消息:"您正在使用不受支持的命令行标记: - ignore-certificate-errors。稳定性和安全性将受到影响。"这个简单的例子再现了这个问题。

require "selenium-webdriver" 
driver = Selenium::WebDriver.for :chrome 
driver.navigate.to login_url

Java和Python已经回答了这个问题。我到处寻找Ruby模拟器。有没有人有建议或知道如何将Python答案(Unsupported command-line flag: --ignore-certificate-errors)翻译成Ruby?谢谢!

5 个答案:

答案 0 :(得分:2)

Ruby selenium-webdriver API不会公开单独的Chrome选项对象,例如Java / Python,但您可以通过"Capabilities"设置选项。

Capabilities web page提供了一个Ruby示例和您可以注入的table of recognized capabilities。将这些与excludeSwitches

一起插入
caps = Selenium::WebDriver::Remote::Capabilities.chrome("chromeOptions" => {"excludeSwitches" => [ "--ignore-certificate-errors" ]})
driver = Selenium::WebDriver.for :chrome, desired_capabilities: caps

同时查看Watir,它是WebDriver的前端。
他们的examples显示了如何发送直接传递给网络驱动程序的:switches array,以便您也可以这样做。这使得添加其他交换机变得更容易,而不是通过功能。

此主题也有chromedriver个问题。有一些帖子详细说明您可以添加--test-type参数来解决证书问题,并ruby code examples如上所述。

答案 1 :(得分:1)

我调整了:

driver = Selenium::WebDriver.for :chrome

阅读:

driver = Selenium::WebDriver.for :chrome, :switches => %w[--test-type]

...脚本成功运行,没有黄色标记。显然,可以添加其他命令行开关。

感谢Nguyen Vu Hoang和mtm。

答案 2 :(得分:0)

我不知道ruby,但我的方法是将模式设置为“测试类型”ChromeDriver功能

这是我在Java中的示例代码

DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities = DesiredCapabilities.chrome();
ChromeOptions options = new ChromeOptions();
options.addArguments("test-type", "start-maximized",
        "no-default-browser-check");    
capabilities.setCapability(ChromeOptions.CAPABILITY, options);

答案 3 :(得分:0)

使用Capybara

Capybara.register_driver :chrome do |app|
  Capybara::Selenium::Driver.new(app, browser: :chrome, switches: ['--test-type'])
end

答案 4 :(得分:0)

此错误导致我的rspec测试失败。我认为这会导致Chrome放慢速度,因此上述修复程序确实删除了错误消息,但未解决我的测试失败问题。

如果您使用的是chromedriver-helper,那么这应该可以解决问题。从命令行运行

chromedriver-update

chromedriver-helper,&#34中对此进行了详细介绍;这可能是Chrome浏览器自动更新的平台所必需的,已知这些平台会引入与旧版chromedrive的兼容性"

一旦我运行了这个,我就可以删除其他地方描述的修补程序,Chrome也没有警告。