如何配置 Selenium 网络驱动程序以在后台启动 chrome 浏览器

How to configure Selenium web driver to start a chrome browser in the background

我正在使用 Selenium 并尝试将 Chrome 驱动程序配置为在后台启动,也就是说我不希望 window 获得焦点。这个想法是 运行 测试套件不会在我编码时打断我的流程。我希望 window 焦点保留在实际的代码编辑器上,而不是新创建的 chrome window.

所以我找到了这个答案:Selenium - chrome Driver fail to start in background (without a start-up window)

但它使用Java。我需要一个 Ruby 解决方案。

我目前正在使用 Chrome 驱动程序,如下所示:

Capybara.default_driver = :chrome

Capybara.register_driver :chrome do |app|
  Capybara::Selenium::Driver.new(app, :browser => :chrome)
end

我怎样才能达到我描述的效果?

从原始 Java 翻译而来,您只需将启动参数添加到您的 Capabilities 并将其传递给新的 Driver 实例:

capabilities = Selenium::WebDriver::Remote::Capabilities.chrome(
    "chromeOptions" => {"args" => [ "--no-startup-window" ]})

Capybara.default_driver = :chrome

Capybara.register_driver :chrome do |app|
  Capybara::Selenium::Driver.new(app, :browser => :chrome,
     :desired_capabilities => capabilities)
end

参考: https://sites.google.com/a/chromium.org/chromedriver/capabilities