我正在使用 capybara、cucumber 和 poltergeist 进行自动化测试 web 应用程序我决定从 poltergeist (phantomjs) 切换到无头 chrome,在 env.rb 中注册了驱动程序:
Capybara.register_driver :headless_chrome do |app|
capabilities = Selenium::WebDriver::Remote::Capabilities.chrome(
chromeOptions: { args: ['headless', 'disable-gpu', 'disable-web-security'] })
Capybara::Selenium::Driver.new app,
browser: :chrome,
desired_capabilities: capabilities
end
config.default_driver = :headless_chrome
config.javascript_driver = :headless_chrome
然后我注册了其他驱动程序设置:
Capybara.register_driver :selenium_chrome do |app|
Capybara::Selenium::Driver.new(app, :browser => :chrome, args:
['headless', 'disable-gpu', 'disable-web-security'])
end
当您运行测试时,Chrome 已加载,但没有活动窗口。那么它应该工作吗?很快我打算在 docker 容器(没有 GUI 的 ubuntu)中运行测试,是否有必要安装 Chrome 浏览器?
Mac OS X 10.12.5 Chrome 60 Chromedriver 2.31
宝石:selenium-webdriver (3.4.4, 2.53.4, 2.53.0) capybara (2.14.4, 2.10.1, 2.6.2, 2.4.4) chromedriver-helper (1.0.0)