在 JS 测试期间阻止 Capybara + Selenium 打开浏览器 window
Stopping Capybara + Selenium from opening a browser window during JS tests
我正在 RSpec 与水豚一起使用。在标记为 js: true
的测试中,它使用默认的 javascript 驱动程序 (Selenium)。
测试本身通过了(见下文),但我注意到它打开了一个 Firefox window,然后在 运行 测试时立即关闭了它。正如您在下面看到的,测试非常简单,我在那里的任何地方都没有像 save_and_open_page
这样的东西。
- 为什么要这样做?
- 有没有办法禁用它?如果我将来有几十个 JS 规范测试,我不希望每个 window 开放。
谢谢!
# 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
出现这种情况是因为Selenium驱动在测试中使用firefox来执行javascript。您可以使用无头浏览器,例如 phantom.js,它不会打开浏览器 window。 poltergiest gem 可能就是您要找的。
我正在 RSpec 与水豚一起使用。在标记为 js: true
的测试中,它使用默认的 javascript 驱动程序 (Selenium)。
测试本身通过了(见下文),但我注意到它打开了一个 Firefox window,然后在 运行 测试时立即关闭了它。正如您在下面看到的,测试非常简单,我在那里的任何地方都没有像 save_and_open_page
这样的东西。
- 为什么要这样做?
- 有没有办法禁用它?如果我将来有几十个 JS 规范测试,我不希望每个 window 开放。
谢谢!
# 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
出现这种情况是因为Selenium驱动在测试中使用firefox来执行javascript。您可以使用无头浏览器,例如 phantom.js,它不会打开浏览器 window。 poltergiest gem 可能就是您要找的。