1
シナリオ概要が3つあり、Firefoxでシナリオ1を実行し、ブラウザを閉じてからシナリオ2をChromeで実行し、ブラウザを閉じてからシナリオを実行する3とFirefox。 各シナリオの後、キュウリ/カピバラでブラウザを終了/終了する方法はありますか?シナリオの後にキュウリ/カピバラが別のブラウザを閉じて開くようにする
これまでのところ、私が登録した2つのドライバ、ChromeのFirefoxのための1と1:
次にhooks.rbで、私は 'カスタム' タグ "@alternate_browser"Before('@alternate_browser') do
driver = Capybara.current_driver
if driver == :selenium_firefox
Capybara.current_driver = :selenium_chrome
else
Capybara.current_driver = :selenium_firefox
end
end
を使用してい
Capybara.register_driver :selenium_firefox do |app|
Capybara::Driver::Selenium.new(app, :browser => :firefox)
end
Capybara.register_driver :selenium_chrome do |app|
Capybara::Driver::Selenium.new(app, :browser => :chrome)
end
各シナリオの後にブラウザを強制的に閉じる方法はありますか?
編集:私が試した:
page.evaluate_script("window.close()")
page.execute_script("window.close()")
をしかし、両方のステートメントは効果がありませんでした。
シナリオのテスト中に問題が発生したのは、何らかの形でキャッシュ/クッキーがシナリオの2番目または3番目の例が失敗するということです。 1つの例を実行した後にブラウザを閉じた場合、次の例のために再び開いた場合などにのみ機能します。すべて同じシナリオ内にあります。これがブラウザを何とかして閉じることが可能かどうか疑問に思っていた理由です。 – chiurox
ウィンドウを閉じることができましたか?特定のシナリオの前にウィンドウを閉じる必要があります。 – Boti
これを実行すると、セッションをクリアできます。 "Capybara.current_session.driver.reset!"または、javascriptで閉じることができます。しかし、次のシナリオの前に新しいウィンドウを開き、その新しいウィンドウを選択することが重要です。セレンのドキュメントをチェックアウトしてください。 http://seleniumhq.org/docs/03_webdriver.html#moving-between-windows-and-frames – Darwin