在JS测试期间阻止Capybara + Selenium打开浏览器窗口

时间:2016-04-09 21:55:40

标签: ruby-on-rails selenium rspec capybara

我正在与Capybara一起使用RSpec。在标记为js: true的测试中,它使用默认的javascript驱动程序(Selenium)。

测试本身通过(见下文),但我发现它打开了一个Firefox窗口,然后在运行测试时立即关闭它。正如您在下面看到的那样,测试非常简单,我在那里任何地方都没有save_and_open_page

  1. 为什么这样做?
  2. 有没有办法禁用它?如果我将来有几十个JS规范测试,我不想为每个测试打开一个窗口。
  3. 谢谢!

    # rails_helper
    require "spec_helper"
    require "rspec/rails"
    require "capybara/rails"
    require "capybara/rspec"
    
    # Test
    it "user can sign in", js: true do
        visit root_path
        click_tab("sign_up")
    
        fill_in "session[email]", with: "grace@hopper.edu"
        fill_in "session[password]", with: "gr4ce!"
        click_submit
    
        expect(current_path).to eq(home_index_path)
    end
    

1 个答案:

答案 0 :(得分:3)

这是因为Selenium驱动程序使用firefox在测试中执行javascript。您可以使用无头浏览器,例如phantom.js,它不会打开浏览器窗口。 poltergiest宝石可能就是你要找的东西。