ブラウザ自動化ライブラリの 1 つ (Capybara) を使用する人々の生活を楽にするために、いくつかのメソッドを書きたいと思います。
特に、2 つのメソッドを追加したいと思います。
ユーザーアクションがウィンドウを開くことを期待するもの。API ユーザーは、どのウィンドウが開かれたかを知ることができる必要があります
window_handle = window_opened_by(wait: 3) { find('#open-window').click }
ユーザーアクションがウィンドウを閉じることを期待する別のもの
expect { find('#close-window').click }.to close_this_window(wait: 3) # clicking element with id 'close-window' should close window in no more than 3 seconds
しかし、私はそれらの方法が互いにもっと似ていることを望みます。それらをより類似させることは可能ですか?たとえば、RSpec マッチャーが window_handle を返すようにすることは可能ですか?
window_handle = expect { find('#open-window').click }.to open_window(wait: 3)