複数window開くときのテスト
turnip/capybaraでテスト書いてる時に、
あるリンクをクリックすると、ポップアップ開いたり新しいウィンドウ開いて、そこでなんか操作する
みたいなことがある。こんな感じでできる。
_, popup = page.driver.browser.window_handles within_window(popup) do expect(page).to have_content('message') end
開いたままのWindowがあるせいでテストが変なこけ方したから、メインのWindow以外を閉じるみたいな感じにした。
# spec/spec_helper.rb RSpec.configure do |config| config.after(:javascript => true) do page.driver.browser.window_handles[1..-1].each do |sub_window| within_window(sub_window) do page.execute_script "window.close();" end end end end