Selenium IDE(v3.17.0) 確認アラートで止まってしまう

状況

Selenium IDEとselenium-side-runnerでテストケースを作っていました。

javascriptconfirm関数で確認アラートを表示する箇所です。

削除ボタンをクリック

「削除します」確認アラートが表示される

OKボタンをクリック

(一覧ページに戻る、など)

Selenium IDE ver2.xでは、次のようにassert confirmationコマンドを呼んでいました。

CommandTargetValue
clickid=btnDelete
assert confirmation削除します

ところがver3.xでは、clickコマンドを実行すると、確認アラートが表示されたままで、先に進みません。

Selenium IDE上では、clickコマンド行で「実行中」の状態です。次のassert confirmationコマンド行に進んでいないんですね。

verify confirmationコマンドも試しましたが、やはり確認アラートが表示されたままで、先に進みませんでした。

対応

A案:ブラウザツールバー「Se」ボタンから起動する場合

まず、clickコマンドの前に、choose ok on next confirmationコマンドを挿入します。

clickコマンドの後のassert confirmationコマンドはあきらめて、削除することにしました。

CommandTargetValue
choose ok on next confirmation
clickid=btnDelete

確認アラートは表示されず、OKをクリックしたことになって、先に進みました。

よかったね👍

B案:selenium-side-runnerで実行する場合(「Se」ボタンから起動する場合も)

A案をselenium-side-runnerヘッドレスで実行しました。すると、clickコマンドの次のコマンドで、エラーになってしまいました。確認アラートが表示されているようです。

UnexpectedAlertOpenError: unexpected alert open: {Alert text : 削除します}
Code language: HTTP (http)

selenium-side-runnerのヘッド有りで実行しても、同じエラーです。エラー直後にブラウザが閉じてしまうので、実際に確認アラートが表示されているのかどうかわかりませんでした。

choose ok on visible confirmationコマンドのリファレンスに、webdriver choose ok on visible confirmationコマンドの記述を発見👀

Affects the next confirmation alert. This command will accept it. If the alert is already present, then use "webdriver choose ok on visible confirmation" instead.

choose ok on visible confirmationは「次に」表示される確認アラートに適用します。「いま」表示中の確認アラートには、webdriver choose ok on visible confirmationコマンドを使ってください。

https://www.seleniumhq.org/selenium-ide/docs/en/api/commands/#choose-ok-on-next-confirmation

そこで、clickコマンドの次に、webdriver choose ok on visible confirmationコマンドを呼ぶようにしました。

CommandTargetValue
choose ok on next confirmation
clickid=btnDelete
webdriver choose ok on visible confirmation

selenium-side-runnerヘッド有りで実行すると、確認アラートが一瞬表示されて、すぐに消え、次に進みました。

selenium-side-runnerヘッドレスでも、エラーなく、先に進みました。

ブラウザツールバー「Se」ボタンから起動した場合も、B案で、問題ありませんでした。

ver3は、ver2のコマンドhtmlを読み込めるんだね

でも、廃止されたコマンドがあるから、いろいろ修正が必要よ

タイトルとURLをコピーしました