Sooey

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