2016-04-09 13 views
0

私はCappecarとRSpecを使用しています。 js: trueのテストでは、デフォルトのjavascriptドライバ(Selenium)を使用します。JSテスト中にCapybara + Seleniumがブラウザウィンドウを開くのを停止します

テスト自体はパスしますが(下記参照)、Firefoxウィンドウを開き、すぐにテストを実行している間に閉じます。以下に見られるように、テストはかなり簡単で、どこにでもsave_and_open_pageのようなものはありません。

  1. これはなぜですか?
  2. これを無効にする方法はありますか?今後数十種類のJS仕様のテストがあれば、それぞれのためにウィンドウを開く必要はありません。

ありがとう!

# 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: "[email protected]" 
    fill_in "session[password]", with: "gr4ce!" 
    click_submit 

    expect(current_path).to eq(home_index_path) 
end 

答えて

3

これは、Seleniumドライバがfirefoxを使用してテストでjavascriptを実行するために発生します。 phantom.jsなどのヘッドレスブラウザを使用すると、ブラウザウィンドウを開くことはできません。 poltergiestの宝石はおそらくあなたが探しているものです。

+0

ありがとうございました!だから、セレンをヘッドレスモードで動かすことはできないのですか?それは絶対にFirefoxを使用する必要がありますか? – user2490003

+1

私が知っている限り、それはfirefoxを使わなければなりません。あなたはその宝石を使ってphantom.jsをかなり簡単に交換できるはずです。 –

関連する問題