首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rspec和Chrome/headless标志

Rspec和Chrome/headless标志
EN

Stack Overflow用户
提问于 2019-02-01 04:55:05
回答 3查看 1.5K关注 0票数 2

我已经为我的Rspec测试使用了无头Chrome和Chrome。我想要一个在这两者之间切换的标志,这样我就可以在我想要的时候看到测试发生了,当我不想的时候把它们隐藏起来。

代码语言:javascript
复制
rspec --headless

现在我只需要将这个秘密绑定到一个.env变量:

代码语言:javascript
复制
Capybara.javascript_driver = Rails.application.secrets.headless ? :headless_chrome : :chrome
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-02-01 05:33:30

嗯,覆盖env var是可行的,所以这是有意义的。

代码语言:javascript
复制
HEADLESS=true rspec
票数 1
EN

Stack Overflow用户

发布于 2019-11-19 16:53:13

在您的rails_helper.rb中,您应该创建如下语句:

代码语言:javascript
复制
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时发送一个变量

代码语言:javascript
复制
$ HEADLESS=true rspec ./spec/features
票数 1
EN

Stack Overflow用户

发布于 2019-02-01 23:12:11

嗯,我个人使用这个代码来注册驱动程序:

代码语言:javascript
复制
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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54469091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档