SeleniumやGebが動かない時に確認したい初歩的なポイント

・ブラウザのバージョンが、現在利用しているSeleniumのドライバがサポートしているバージョンかどうか
 過去の経験側的にこれで動かなくなった事が多々あるので、環境構築後や急に動かなくなった(=自動アップデートなどでブラウザのバージョンが勝手に上がってしまう)などの場合確認しておきたい。

・マウスオーバー、ポップアップなどで画面に動きが発生するがために、対象のオブジェクトが画面から隠れている
 ダウンロードマネージャの表示や、マウスオーバーする事でヘッダーが表示されてしまうなどにより画面に動きが発生してしまうため、自動でクリックする際に想定とは異なるものをクリックしてしまい、結果別の画面に遷移したり、そのまま時間が経過してNGになるケースがあったりする。
 →それも踏まえたシナリオ設計や、その動きを殺したドライバを仕掛ける、SeleniumやGebのテスト側からそれを殺すなどを行う。但し、あまりやりすぎるとテストの意味が無くなっちゃうので、その辺はトレードオフで考えないといけない(プロジェクトによってはモジュールを変更するなんてありえないというところもあるであろうし)。

・DOMの構造がHTML描画時と、テスト実行時で異なる
 jQueryなどを利用している事でIEのソース表示などで閲覧する内容が想定と異なるため失敗するケースや、jQueryの動くタイミングとSeleniumが動くタイミングが異なることで動かないなど。
 →ページオブジェクト側に描画した後のオブジェクトが存在する事を発見したらページ遷移した事にするなど。

Selenium実践入門 ―― 自動化による継続的なブラウザテスト (WEB+DB PRESS plus)

Selenium実践入門 ―― 自動化による継続的なブラウザテスト (WEB+DB PRESS plus)

Seleniumデザインパターン & ベストプラクティス

Seleniumデザインパターン & ベストプラクティス