2011年2月27日日曜日

SeleniumRCでよく使うコマンド10選 〜基本編〜

最近よくSeleniumRCのテストケース(php版)を書いています。
よく使うコマンドをここいらでまとめておこうかと。
基本すぎてSleniumエキスパートの方には面白くないとおもいますw

■ open(おーぷん)

まずは基本中の基本のオープンコマンド。
絶対URLや相対URLを指定してページを開くコマンドです。
$this->open("http://example.com/hoge/huga/1");
とか
$this->open("/hoge/huga/1");
のように使います。

相対URLを指定した場合は、setBrowserUrl()で指定したURLに結合して実行されます。

■ click(くりっく)

Linkやsubmitボタンをクリックするコマンドです。
name属性やvalue属性、XPathなどをを指定して実行することが出来ます。

$this->click("link=前のページに戻る");
とか
$this->click("participate");
とか
$this->click("//input[@value='ログイン']");
とか
OpenPNE3のPC版ログインページのログインボタンを指定してクリックの場合
$this->click("//html/body/div/div/div[2]/div/div[2]/div/div/form/table/tbody/tr[4]/td/input");
のように実行します。

openコマンドやclickコマンドのあとにwaitForPageToLoad(うぇいとふぉーぺーじとぅろーど)コマンドを入れてあげないと、
ページのロードが終わる前に次のコードを実行してしまうことになり、テストケースが途中で失敗します。
割とよく忘れるので注意が必要です。

■ type(たいぷ)

テキストエリアを指定してテキストを入力するコマンドです。

$this->type("keyword", "うどん");
のように、テキストエリアのname属性と入力値を引数にとって実行します。

■ select(せれくと)

セレクトボックスのラベルを指定して選択するコマンドです。

$this->select("language_culture", "label=日本語 (日本)");
のように、セレクトボックスのidとラベルを引数にとって実行します。

ラベルの引数を空にすれば、セレクトボックスの空を選択するテストも出来ます。

■ isElementPresent(いずえれめんとぷれぜんと)

エレメントが存在するか確認するコマンドです。
$this->isElementPresent("//*[@id=\"page_member_home\"]");
のように、body idなどを指定し実行します。

■ isTextPresent(いずてきすとぷれぜんと)

テキスト(文字列)が存在するか確認するコマンドです。
$this->isTextPresent("うどん");
のように、文字列などを指定し実行します。

■ assertTrue(あさーととぅるー)

引数を判定し正を返すコマンドです。
isElementPresentやisTextPresentなどと組み合わせて使用します。

$this->assertTrue($this->isElementPresent("//*[@id=\"page_member_home\"]"));
とか
$this->assertTrue($this->isTextPresent("うどん"));
のように使います

■ getText(げっとてきすと)

LinkタイトルやsubmitボタンのタイトルやXPathを指定し、その指定した箇所にある文字列を取得します。

$this->getText("link=削除する"));
とか
$this->getText("//input[@value='削除する']"));
とか
$this->getText("//div[@id='Center']/div[2]/div/div[1]/h3"));
のように、使用します。

■ getLocation(げっとろけーしょん)

現在開いているページの絶対URLを取得します。


■ assertEquals(あさーといこーる)

二つの値をを比較し、等しくないときにエラーメッセージを返します。

Googleでhello worldと検索し、検索結果ページのタイトルを比較したい場合
$this->assertEquals("hello world - Google 検索", $this->getTitle());
のようなコードになります。

現在開いているURLが正しいか比較したい場合は
$this->assertEquals("http://hogehoge.com/", $this->grtLocation());
のようなコードになります。

まとめ

超基本のopenコマンドからまとめてみました。SleniumIDEでちまちまテストケースを作っていくのでも良いのですが、コマンド覚えてしまえば
手動で作っていくほうがきっと早いでしょう。
今回紹介した以外にも素敵なコマンドが沢山あるので深めていきたいと思います。
これからもSeleniumRCをガンガン使っていこうとおもっているので、おすすめ便利コマンドがあったら教えてくださいね!


参考
http://www.phpunit.de/manual/3.3/ja/api.html