我已经为我的Rspec测试使用了无头Chrome和Chrome。我想要一个在这两者之间切换的标志,这样我就可以在我想要的时候看到测试发生了,当我不想的时候把它们隐藏起来。
rspec --headless现在我只需要将这个秘密绑定到一个.env变量:
Capybara.javascript_driver = Rails.application.secrets.headless ? :headless_chrome : :chrome发布于 2019-02-01 05:33:30
嗯,覆盖env var是可行的,所以这是有意义的。
HEADLESS=true rspec发布于 2019-11-19 16:53:13
在您的rails_helper.rb中,您应该创建如下语句:
RSpec.configure do |config|
config.before(:each) do
if ENV['HEADLESS'] == 'true'
Capybara.current_driver = :selenium_chrome_headless
else
Capybara.current_driver = :selenium_chrome
end
end
end然后在运行specs时发送一个变量
$ HEADLESS=true rspec ./spec/features发布于 2019-02-01 23:12:11
嗯,我个人使用这个代码来注册驱动程序:
Capybara.register_driver :chrome do |app|
capabilities = Selenium::WebDriver::Remote::Capabilities.chrome(
chromeOptions: {
args: [
('headless' if ENV.fetch('HEADLESS', '1') == '1')
].compact
}
)
Capybara::Selenium::Driver.new(
app,
browser: :chrome,
desired_capabilities: capabilities
)
end然后,在.env中,您可以将变量默认设置为无头或非无头,然后,如果想要覆盖它,只需输入HEADLESS=0 rspec
https://stackoverflow.com/questions/54469091
复制相似问题