モーグルとカバとパウダーの日記

モーグルやカバ(EXカービング)山スキー(BC)などがメインの日記でした。今は仕事のコンピュータ系のネタが主になっています。以前はスパム対策関連が多かったのですが最近はディープラーニング関連が多めです。

Selenium IDEでJavaScriptのエラーが出た時はSeleniumを再起動する

Jenkins + Selenium IDEで自動実行させたいものがあり、SeleniumからjQueryを使ってフォームのチェックを選択するようにしていました。


Seleniumは「getEval」コマンドを使うことでJavascriptを実行でき、一旦下記のようにして「$」を設定してやれば、その後は普通にjQueryを使うようにgetEval内でjQueryコマンドを発行できます。

$ = this.page().getCurrentWindow().jQuery


この辺のことは

SeleniumJavaScriptを使う方法いろいろ(変数・関数などの利用) - colori
https://colo-ri.jp/develop/2008/04/seleniumjavascript.html

が大変参考になります。


で、これでjQueryを使ってフォームの該当チェックボックスの選択をしたりしていたのですが、ちょっと条件を変えたいことがあり、変更していたところ突然動かなくなってしまいました。

getEval内のJavaScriptにエラーがあったのですが、それを修正しても動かないのです。

それで条件を単純に変えてみたり、元の条件に戻したりやってみたのですが、なかなかエラーが解消されず…

で、他のPCで同じようなことをテストで試してみたところ、さっくりと通ることがわかりました。


もしやと思い、一旦Selenium IDEを落として、再度同じテストケースを読み込んで試したところ、なんの問題もなく通りました。

どうもgetEval使ってJavaScriptのエラーが一旦起きると、再度テストケースを走らせても内部の状況がクリアされずに走るため、テストケースの修正をしてもまたエラーが起きてしまうようです。

なので、Selenium IDEでgetEval使ってJavaScriptを動かしているとき、JavaScriptでエラーが出た場合、テストケースを修正したら、一旦Seleniumを再起動して試す必要があるようです。