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をコピーしました