Hatena::ブログ(Diary)

cooldaemonの備忘録 RSSフィード

2008-12-03

Selenium のテストケースに一定の待ち時間を入れる

Perl で Test::WWW::Selenium を使う際には関係のない話ではあるのですが...、HTML と JavaScript (Selenium IDE 上)だけで sleep を実現したいという要望を頂いたので下記を提案してみました。

<tr>
  <td>waitForCondition</td>
  <td>var et = (new Date()).getTime() + 3000; while (true) { if (end &lt;= (new Data()).getTime()) break; } true;</td>
  <td>3100</td>
</tr>

上記は、waitForCondition で第一引数で与えられた JavaScript が true を返すまで待つ事を利用し、3秒間ひたすらループする例です。

30秒以上処理に時間が掛かると警告が出るので注意が必要です。

ん〜効率悪いなぁ。

2006-07-27

導入メモ

参考URL

http://www.openqa.org/selenium-rc/tutorial.html

OS は OSX で、既に Java がインストールされているモノとする。

今回試した SeleniumRC のバージョンは 0.8.1 。

下記から、SeleniumRC をダウンロードする。

http://www.openqa.org/selenium-rc/download.action

ダウンロード&圧縮ファイルの伸張後、server ディレクトリ内の selenium-server.jar を実行

java -jar /path/to/selenium-server.jar -interactive

起動後、同コンソール内で下記のように入力すると、firefox が起動する。

cmd=getNewBrowserSession&1=*firefox&2=http://www.google.com

上記は、適当なブラウザを起動し、URL 入力欄に下記を入力するのと同様。

http://localhost:4444/selenium-server/driver?cmd=getNewBrowserSession&1=*firefox&2=http://www.google.com

パラメータ "1" の箇所で指定できるブラウザは下記の通り。

*iexploreInternet Explorer
*firefoxFirefo
*operaOpera
*safariSafari

今回は、Firefox を使用。Firefox.app は、/Applications に予め配置しておく事。

問題がなければ、下記のような sessionId が出力されるので、これ以降の命令は全て、この sessionId をパラメータとして付加する。

Got result: OK,1153997255074

sessionId 以外は、普通の Selenium と共通のコマンドとパラメータが使えるっぽい。

google で selenium を検索し、終了するコマンドは下記の通り。

cmd=open&1=http://www.google.com/webhp&sessionId=1153997255074
cmd=type&1=q&2= selenium&sessionId=1153997255074
cmd=click&1=btnG&sessionId=1153997255074
cmd=testComplete&sessionId=1153997255074