在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?谢谢!
答案 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也没有警告。