状況
Selenium IDEとselenium-side-runnerでテストケースを作っていました。
javascriptのconfirm関数で確認アラートを表示する箇所です。
削除ボタンをクリック
↓
「削除します」確認アラートが表示される
↓
OKボタンをクリック
↓
(一覧ページに戻る、など)
Selenium IDE ver2.xでは、次のようにassert confirmationコマンドを呼んでいました。
| Command | Target | Value |
|---|---|---|
click | id=btnDelete | |
assert confirmation | 削除します |
ところがver3.xでは、clickコマンドを実行すると、確認アラートが表示されたままで、先に進みません。
Selenium IDE上では、clickコマンド行で「実行中」の状態です。次のassert confirmationコマンド行に進んでいないんですね。
verify confirmationコマンドも試しましたが、やはり確認アラートが表示されたままで、先に進みませんでした。
対応
A案:ブラウザツールバー「Se」ボタンから起動する場合
まず、clickコマンドの前に、choose ok on next confirmationコマンドを挿入します。
clickコマンドの後のassert confirmationコマンドはあきらめて、削除することにしました。
| Command | Target | Value |
|---|---|---|
choose ok on next confirmation | ||
click | id=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コマンドの記述を発見?
https://www.seleniumhq.org/selenium-ide/docs/en/api/commands/#choose-ok-on-next-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コマンドを使ってください。
そこで、clickコマンドの次に、webdriver choose ok on visible confirmationコマンドを呼ぶようにしました。
| Command | Target | Value |
|---|---|---|
choose ok on next confirmation | ||
click | id=btnDelete | |
webdriver choose ok on visible confirmation |
selenium-side-runnerヘッド有りで実行すると、確認アラートが一瞬表示されて、すぐに消え、次に進みました。
selenium-side-runnerヘッドレスでも、エラーなく、先に進みました。
ブラウザツールバー「Se」ボタンから起動した場合も、B案で、問題ありませんでした。

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

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

