2017-08-29 22:13:38 +0900
PhantomJSからChromeDriverに移行した場合にテストでダイアログのボタンをどのように押すか
Poltergeist + PhantomJSという組み合わせでRailsアプリのFeature specを書いている場合、JavaScriptのalertやconfirmでダイアログが開かれた時には常にOKボタンが押されるようになるため、クリックすると確認のダイアログが開くようなボタンを押すテストは以下のようなコードで実行することができる。
find("#button-with-confirm").click
これを、ChromeDriveとselenium-driverを使ったFeature specに移行した場合、以下のようにCapybaraのaccept_alertを利用して明示的にダイアログのボタンを押すようなコードにする必要がある。
accept_alert do
find("#button-with-confirm").click
end