如何阻止capybara/selenium Chrome窗口前置/聚焦?

4

我在本地运行一个大约需要15分钟的测试套件。在此期间,由于每个特性规范都会将Chrome窗口置于前台,因此无法完成任何工作。是否有配置选项可以避免这种情况,不要将capybara / selenium窗口置于前台?

这是我的当前配置:

Capybara.register_driver :selenium do |app|
  Capybara::Selenium::Driver.new(app, 
    browser: :chrome,
    desired_capabilities: {
      "chromeOptions" => {
        "args" => %w{ window-size=1740,768 } 
      }
    }
  )
end

Capybara.server_port           = 57124
Capybara.app_host              = "http://localhost:#{Capybara.server_port}" # S3 accesss control blocks default capybara 127.0.0.1
Capybara.default_max_wait_time = 10 #default is 2
1个回答

1

如果您需要在非无头模式下运行它,则无法这样做,但如果您在无头模式下运行,则不会遇到该问题。


啊,嗯。如何在无头模式下运行? - pixelearth
你需要在驱动程序注册时添加 headless 参数(如果你使用的是 Windows 系统,可能还需要添加 disable-gpu 参数),或者如果窗口大小对你的测试不是很重要,你可以将 :selenium_chrome_headless 指定为你的 JavaScript 驱动程序。 - Thomas Walpole
这也让我抓狂。为什么它不能保持在后台? - wmakley
@wmakley 这是Chrome现在的工作方式 - Chrome必须更改其行为,或者您可以在无头模式下运行它。 - Thomas Walpole

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接