←このブログを購読する
カテゴリ
-
最新の記事
- MySQLのトラブルあれこれ May 10, 2016
- Slideshow メモ May 7, 2016
- OS X でBrewでインストールしたコマンドのパス設定 March 15, 2016
- 就職しました July 12, 2013
- Blog is now working March 8, 2013
最新のコメント
- オリオン on xobni for outlook
- tmori on Disappointment of HP Media Smart Server EX475
- ななほし on Disappointment of HP Media Smart Server EX475
- HeadWing | Disappointment of HP Media Smart Server EX475 on Upgraded HW for HP Media Smart Server EX475
- HeadWing | Grid Junction - UPdated to version 1.5.1 on Grid Junction for WHS
Daily Archives: May 24, 2007
SeleniumでXPath Locatorを使うとIEと相性悪そう
Selenium IDEとXPatherを使っているとついつい手軽にXPathが記述できるので、それを多用してテストを作成していたのですが、FireFoxで実行しているとサクサク動作してくれて、これはいいという感じなのが、IEで実行するとXPath Locatorが使われているところでやたらと遅くなります。CPU使用率もほとんど100%の状態になるし、ちゃんと確認していませんがどうもメモリーリークも発生しているようです。ひとつのブラウザセッションで連続してそういうコマンドを実行しているとどこかでおかしくなって、コマンドタイムアウト例外を投げて結果ファイルも残さずに異常終了してしまいます。 仕方がないので、いくつかにテストを分割してRCをテスト毎に起動することで回避しました。これってDOMに変更するしかないんですかね?
Seleniumでテスト作成するときの留意点
先日書いたTestRunnerだと少し遅くしてやらないとテストが通らない場合があると書いたのですが、そういう場合もあるにはあるのですが、少し注意しないといけない点に気付きました。 waitForNotElementPresent を使って何かが存在しないことをチェックしようとする場合に、チェックする対象が現在のページにも次のページにも存在しない場合、現在のページから次のページに切り替わったことを別なコマンドできちんと確認してからwaitForNotElementPresentで対象をチェックしてやらないと、現在のページでもTrueになってしまうので、不具合が生じる場合があります。って当たり前ですが、最初はちょっと気がつきにくかったりします。検証は基本的にassert*系かverify*系のコマンドで行うべきなのですが、ページの切り替えのついでにwaitFor*でとかやっているうちに上記のような状態に陥る可能性がありますので、やはりルールを決めてそれに従ってページ切り替え確認を行うようにした方がよさそうです。例えば、clickAndWaitでリンククリック後、必ずassertTitleかwaitForTitleをはさんでからverify*系で対象が存在することを検証するとか。