Selenium-IDE

はじめに

Selenium-IDE (統合開発環境) は、Selenium テストケースを開発するためのツールです。Selenium-IDE は使いやすい Firefox プラグインで、一般にテストケースを開発するための最も効率的な方法です。Selenium-IDE ではコンテキストメニューも使用できます。コンテキストメニューを使うと、まず現在ブラウザに表示されているページ上の UI 要素を選択し、次に Selenium コマンドのリストから目的のコマンドを選択できます。コマンドのパラメータは、選択された UI 要素のコンテキストに従って、あらかじめ定義されたものが使われます。Selenium-IDE を使う方法は、時間の節約になるだけでなく、Selenium スクリプトの構文を学ぶ手段としても優れています。

この章では Selenium-IDE について詳しく取り上げ、Selenium-IDE を効果的に使う方法について説明します。

IDE のインストール

まず、Firefox を使って SeleniumHQ の ダウンロードページ から IDE をダウンロードします。

Firefox で IDE をダウンロードすると、次のようなウィンドウが表示されます。

_images/chapt3_img01_IDE_Installation.png

[今すぐインストール] をクリックします。Firefox の [アドオン] ウィンドウがポップアップし、最初はプログレスバーが表示されます。ダウンロードが完了すると、次のような画面になります。

_images/chapt3_img02_IDE_Installation.png

Firefox を再起動します。再起動後の Firefox の [ツール] メニューには、[Selnium-IDE] が表示されます。

_images/chapt3_img03_IDE_Installation.png

IDE の実行

Selenium-IDE を実行するには、Firefox の [ツール] メニューで [Selenium-IDE] を選択します。空のスクリプト編集ウィンドウと、テストケースを読み込んだり新規作成したりするメニューのある Selenium-IDE のウィンドウが表示されます。

_images/chapt3_img04_IDE_open.png

IDE の機能

メニューバー

[ファイル] メニューでは、テストケースファイルやテストスイートファイルを新規作成したり、開いたり、保存したりできます。[編集] メニューでは、テストケースのコマンドをコピー、貼り付け、削除したり、操作を元に戻したり、コマンドをすべて選択したりできます。[オプション] メニューでは、さまざまな設定を変更できます。一部のコマンドのタイムアウト値を設定したり、Selenium のコマンドの基本セットを拡張するユーザー定義の拡張スクリプトを追加したり、作成したテストケースを保存するときのフォーマット (言語) を指定したりできます。[ヘルプ] メニューは Firefox 標準の [ヘルプ] メニューで、この中の [UI-Element Documentation] だけが Selenium-IDE に関係のある項目です。

ツールバー

ツールバーには、テストケースをデバッグするためのステップ実行機能をはじめ、テストケースの実行をコントロールするためのさまざまなボタンが並んでいます。右端の赤い丸のボタンは、[Record] (記録) ボタンです。

_images/chapt3_img05_IDE_features.png
speed control
[Speed Control] (速度調節): テストケースの実行速度を調節します。
run all
[Run All] (すべて実行): 複数のテストケースを持つテストスイートが読み込まれているときにテストスイート全体を実行します。
run
[Run] (実行): 現在選択されているテストを実行します。テストが 1 つしか読み込まれていない場合、このボタンと [Run All] ボタンの動作は同じです。
pause resume
[Pause] / [Resume] (一時停止/再開) : 実行中のテストを一時停止または再開します。
step
[Step] (ステップ実行): コマンドを 1 つずつ実行し、テストケースの「1ステップ実行」を行います。テストケースをデバッグするときに使います。
testrunner
[TestRunner Mode] (TestRunner モード): テストケースを Selenium-Core TestRunner で読み込んでブラウザで実行することができます。TestRunner は今はあまり使われておらず、いずれ非推奨となるでしょう。このボタンは、テストケースを評価して、TestRunner との後方互換性があるかどうかを調べるために用意されています。ほとんどのユーザーは、このボタンを使う必要はないでしょう。
rollup
[Apply Rollup Rules] (ロールアップルールを適用): この高度な機能を利用すると、一連の Selenium コマンドの繰り返しを 1 つのアクションにまとめることができます。ロールアップルールの詳細については、[ヘルプ] メニューの [UI-Element Documentation] を参照してください。
record
[Record] (記録): ユーザーのブラウザ操作を記録します。

[テストケース] ペイン

スクリプトは [テストケース] ペインに表示されます。[テストケース] ペインには 2 つのタブがあります。次に示すのは、コマンドとそのパラメータを読みやすい「テーブル」形式で表示するための [テーブル] タブです。

_images/chapt3_img15_Table_Format.png

もう 1 つの [ソース] タブには、テストケースがネイティブ形式で表示されます。ファイルはこのネイティブ形式で保存されます。デフォルトでは HTML ですが、Java や C# などのプログラミング言語、あるいは Python などのスクリプト言語に変更することもできます。詳細については、[オプション] メニューを参照してください。[ソース] タブでは、テストケースを生の形式で編集することができ、操作のコピー、切り取り、貼り付けが可能です。

[コマンド]、[対象]、および [値] 入力フィールドには、現在選択されているコマンドとそのパラメータが表示されます。これらの入力フィールドでは、現在選択されているコマンドを修正できます。一番下のペインの [リファレンス] タブで、コマンドに対して指定されている 1 つ目のパラメータは、必ず [対象] フィールドに入力します。[リファレンス] タブで 2 つ目のパラメータが指定されている場合、このパラメータは [値] フィールドに入力します。

_images/chapt3_img16_Entry_Fields.png

[コマンド] フィールドに文字を入力すると、入力した文字に応じてドロップダウンリストに項目が表示されるので、このリストから目的のコマンドを選択できます。

[ログ] / [リファレンス] / [UI-Element] / [Rollup] ペイン

一番下のペインは、さまざまな機能で使われます。[ログ]、[リファレンス]、[UI-Element]、および [Rollup] の 4 つのタブがあります。

[ログ]

テストケースを実行すると、[ログ] タブを選択していなくても、エラーメッセージとテストの進行状況を示す情報メッセージが自動的にこのペインに表示されます。これらのメッセージは、しばしばテストケースのデバッグに役立ちます。ログを消去するには [消去] ボタンをクリックします。[情報] ボタンをクリックすると、ドロップダウンリストが表示されます。リストで目的の項目を選択すれば、画面に表示する情報のレベルを指定できます。

_images/chapt3_img17_Bottom_Box.png

[リファレンス]

[リファレンス] タブは、[テーブル] タブで Selenese コマンドとパラメータを入力したり修正したりする場合にデフォルトで選択されるタブです。[テーブル] タブが表示されている場合、[リファレンス] ペインには現在のコマンドのリファレンスが表示されます。[テーブル] タブの [ソース] タブのどちらで作業している場合も、コマンドを入力または修正するときは、[対象] フィールドと [値] フィールドで指定するパラメータが、[リファレンス] ペインのパラメータリストに指定されているものと一致していることを確認することが非常に重要です。指定するパラメータの数は、[リファレンス] ペインで指定されている数と一致しなければならず、パラメータの順序も [リファレンス] ペインのそれと一致しなければなりません。さらに、指定するパラメータの型も、[リファレンス] ペインで指定されている型と一致していなければなりません。これら 3 つのうち、1 つでも一致しないものがあれば、コマンドは正常に実行されません。

_images/chapt3_img18_Bottom_Box_Ref.png

[リファレンス] タブはクイックリファレンスとして大いに役立ちますが、Selenium リファレンス を参照することもしばしば必要になります。

[UI-Element] と [Rollup]

これらの 2 つのペイン (高度な機能を扱うためのペイン) については、Selenium-IDE の [ヘルプ] メニューの [UI-Element Documentation] を参照してください。

テストケースの作成

テストケースを開発するための主な方法は 3 つあります。多くの場合、テスト開発者はこれら 3 つのテクニックをすべて使う必要があります。

記録

Selenium を初めて使うユーザーは、Web サイトでの操作を記録してテストケースを作成することが多いようです。Selenium-IDE を最初に開いたとき、[Record] ボタンはデフォルトでオンになっています。

ノート

ユーザー拡張スクリプトを使えば、デフォルトでオフにすることができます。

記録中は、ユーザーの操作に基づいて Selenium-IDE がテストケースにコマンドを自動的に挿入します。次に示すのは、典型的なユーザーの操作です。

  • リンクをクリックする - click コマンドまたは clickAndWait コマンド
  • 値を入力する - type コマンド
  • ドロップダウンリストボックスで項目を選択する - select コマンド
  • チェックボックスまたはラジオボタンをクリックする - click コマンド

いくつか注意すべき点を次に示します。

  • type コマンドが記録されるようにするには、Web ページ上のどこか別の場所をクリックする操作が必要になる場合があります。
  • リンクをたどる操作は、通常は click コマンドとして記録されます。多くの場合、 click コマンドは clickAndWait に変更して、新しいページが完全に読み込まれるまでテストケースを確実に停止させる必要があります。そうしないと、ページに含まれるすべての UI 要素が読み込まれる前にテストケースの実行が先に進み、予期しない形でテストケースが失敗することになります。

コンテキストメニューを使った検証とアサートの追加

テストケースでは、Web ページのプロパティをチェックする必要もあるでしょう。それには、 assert コマンドと verify コマンドを使う必要があります。ここでは、これらのコマンドの細かな点には触れません。テストケースに追加する方法だけを説明します。コマンドの詳細については、 “Selenese” Selenium コマンド に関する章を参照してください。

Selenium-IDE の記録機能がオンの状態で、テスト対象のアプリケーションを表示しているブラウザを選択し、ページ上の任意の場所を右クリックします。すると、 verify コマンドや assert コマンドを含むコンテキストメニューが表示されます。

初めて Selenium を使う場合には、Selenium コマンドが 1 つしか表示されないかもしれません。しかし、IDE を使っていると、メニューに表示されるコマンドがどんどん増えていきます。Selenium-IDE は、現在の Web ページ上で選択されている UI 要素に応じて、必要なコマンドとパラメータの予測を試みます。

実際にこの機能をためしてみましょう。適当な Web ページを開き、ページ上のテキストを選択します。段落 1 つか、見出しがいいでしょう。次に、選択したテキストを右クリックします。コンテキストメニューが表示され、 verifyTextPresent コマンドと、このコマンドにふさわしいパラメータとして、選択されたテキスト自体が表示されるはずです。

また、[利用可能な全てのコマンド] という項目があることに注目してください。この項目を選択すると、非常に多くのコマンドが、現在選択されている UI 要素のテストに適したパラメータ案とともに表示されます。

いくつかほかの UI 要素についても、同じようにためしてみてください。たとえば、画像を右クリックしたり、ボタンやチェックボックスなどのユーザーコントロールを右クリックしたりしてみてください。 verifyTextPresent 以外のオプションを見るには、[利用可能な全てのコマンド] を使う必要があるかもしれません。いったんほかのオプションを選択すると、よく使われるコマンドがトップレベルのコンテキストメニューに表示されるようになります。たとえば、画像に対して verifyElementPresent を選択すると、次に画像を選択して右クリックしたときに、トップレベルのコンテキストメニューにこのコマンドが表示されるようになります。

繰り返しになりますが、これらのコマンドの詳細については、Selenium のコマンドに関する章で説明します。とりあえずここでは、IDE を使ってさまざまなコマンドをテストケースに記録、選択し、テストケースを実行してみてください。IDE を使っていうちに、Selenium のコマンドについても自然に多くのことを学べるはずです。

編集

コマンドの挿入

[テーブル] タブ

テストケース内のコマンドを挿入する場所を選択します。右クリックして [コマンドを挿入] をクリックします。コマンド編集用のテキストフィールドを使って、新しいコマンドとそのパラメータを入力します。

[ソース] タブ

テストケース内のコマンドを挿入する場所を選択し、3 列からなる行を 1 つ作成するのに必要な HTML タグを入力します。この行の 1 列目にはコマンドを、2 列目には最初のパラメータを (パラメータが必要な場合)、3 列目には 2 つ目のパラメータを (パラメータが必要な場合) 入力します。[テーブル] タグに戻るときは、その前にテストケースを保存します。

コメントの挿入

テストケースの可読性を高めるためにコメントを入力できます。テストケースの実行時にはコメントは無視されます。

垂直方向の空白 (1 行以上の空白行) をテストに追加するには、空のコメントを作成する必要があります。空のコマンドでは実行時にエラーが発生します。

[テーブル] タブ

テストケース内のコメントを挿入する場所を選択します。右クリックして [コメントを挿入] をクリックします。[コマンド] フィールドにコメントを入力します。入力したコメントは紫色のフォントで表示されます。

[ソース] タブ

テストケース内のコメントを挿入する場所を選択します。HTML スタイルのコメント、すなわち <!– これはコメントです –> を入力します。

コマンドまたはコメントの編集

[テーブル] タブ

変更する行を選択し、[コマンド]、[対象]、および [値] フィールドを使って内容を編集します。

[ソース] タブ

[ソース] タブは WYSIWYG エディタに相当する機能を持っているので、目的の行 (コマンド、パラメータ、またはコメント) を編集します。

テストケースを開く、保存する

[ファイル] メニューの [開く]、[保存]、[名前を付けて保存] は、ほかのほとんどのプログラムにある、ファイルを開いたり保存したりする機能と同様に動作します。既存のテストケースを開くと、テストケースに含まれる Selenium コマンドが [テストケース] ペインに表示されます。

テストスイートファイルも [ファイル] メニューから開いたり保存したりできます。ただし、テストスイートの場合には、テストスイート用の独自の項目が下の方に表示されます。[開く]、[保存]、[名前を付けて保存] を使用できるのは、対象がファイルの場合だけです。

ノート

この項目の執筆時点では、Selenium-IDE にバグがあって、最初に Selenium-IDE を開いたときに [ファイル] メニューの [開く] をクリックしても、何も起こりません。もしこのような状態に遭遇したら、Selenium-IDE をいったん閉じて再起動してください (ブラウザを閉じる必要はありません)。これ以後、問題は出なくなります。

テストケースの実行

Selenium-IDE には、テストケースを実行するためのさまざまなオプションがあり、1 つのテストケースの実行、停止と再開、1 行ずつの実行、現在開発中のコマンドだけの実行、テストスイート全体の実行などが可能です。Selenium-IDE では、テストケースを非常に柔軟に実行できます。

テストケースの実行
[Run] ボタンをクリックすると、現在表示されているテストケースが実行されます。
テストスイートの実行
[Run All] ボタンをクリックすると、現在読み込まれているテストスイートに含まれるすべてのテストケースが実行されます。
停止と再開
[Pause] ボタンをクリックすると、実行中のテストケースを停止できます。テストケースの実行を停止すると、ボタンのアイコンは [Resume] ボタンのアイコンに変わります。実行を再開するには、[Resume] ボタンをクリックします。
途中で実行を停止
テストケース内でブレークポイントを指定すると、特定のコマンドでテストケースを停止することができます。この機能は、テストケースをデバッグするときに便利です。ブレークポイントを指定するには、コマンドを選択し、右クリックして表示されるコンテキストメニューで [ブレークポイントの指定/解除] をクリックします。
途中から実行を開始
テストケースの途中にある特定のコマンドから実行を開始することができます。この機能も、テストケースをデバッグするときに便利です。開始位置を指定するには、コマンドを選択し、右クリックして表示されるコンテキストメニューで [開始位置の指定/解除] をクリックします。
任意のコマンドの実行
1 つのコマンドだけをダブルクリックすると、そのコマンドを実行することができます。この機能は、コマンドを 1 つ記述するときに便利です。作成中のコマンドが適切かどうかわからないときでも、コマンドを即座にテストできます。コマンドをダブルクリックするだけで、適切に実行されるかどうか確認できます。この機能は、コンテキストメニューからも利用できます。

Base URL を使った、異なるドメインでのテストケースの実行

Selenium-IDE ウィンドウの上部にある [Base URL] フィールドを使うと、テストケースを異なるドメインで実行できるので便利です。たとえば、 http://news.portal.com という名前のサイトが http://beta.news.portal.com という名前でインハウスのベータサイトを持っていたとします。この場合、これらのサイトが対象で、 open ステートメントで始まるすべてのテストケースについて、 open の引数に 絶対 URL (http: または https: などのプロトコルで始まる URL) ではなく、 相対 URL を指定します。すると、Selenium-IDE は、[Base URL] フィールドに入力された値の最後に、 open コマンドの引数を追加して、絶対 URL を作成します。たとえば次のテストケースは、 http://news.portal.com/about.html を対象に実行されます。

_images/chapt3_img20_BaseURL_prod.png

ここで、[Base URL] フィールドの設定を変更してテストケースを実行すれば、同じテストケースが今度は http://beta.news.portal.com/about.html を対象に実行されます。

_images/chapt3_img21_BaseURL_beta.png

デバッグ

デバッグとはテストケースのエラーを見つけて解決する作業のことです。デバッグはテストケース開発に含まれる通常の工程です。

ほとんどの Selenium 初心者もデバッグについてはすでに基礎知識を持っているでしょうから、ここではデバッグそのものについてはふれません。デバッグをするのがまったく初めてという場合には、社内や組織内の開発者にアドバイスをもらってください。

ブレークポイントと開始位置

Selenium-IDE では、テストケース内の任意の位置でテストケースの実行を開始または停止するためのブレークポイントの指定と開始位置の指定がサポートされています。この機能を使うと、テストケースの途中の特定のコマンドでテストケースの実行を停止させ、その時点でのテストケースの動作を調べることができます。この場合、具体的には、調べようとするコマンドの直前のコマンドにブレークポイントを指定します。

ブレークポイントを指定するには、コマンドを選択し、右クリックして表示されるコンテキストメニューで [ブレークポイントの指定/解除] をクリックします。テストケースを最初からブレークポイントまで実行するには、[Run] ボタンをクリックします。

テストケースの途中から最後まで、または最初からブレークポイントまでの部分を実行できると便利なことがあります。たとえば、最初に Web サイトにログインし、次に一連のテストを実行するテストケースを作成していて、ログイン後の一連のテストのいずれかをデバッグしたい場合などです。この場合、ログインは 1 度すれば不要になりますが、その後のテストは繰り返し実行する必要があります。このようなテストケースでは、いったんログインした後、ログイン操作の後に開始位置を指定し、この開始位置からテストケースを実行することができます。こうすれば、テストケースを再実行するたびに手動で Web サイトからログアウトする必要はなくなります。

開始位置を指定するには、コマンドを選択し、右クリックして表示されるコンテキストメニューで [開始位置の指定/解除] をクリックします。テストケースを開始位置から実行するには、[Run] ボタンをクリックします。

テストケースのステップ実行

テストケースのコマンドを 1 つずつ実行 (ステップ実行) するには、次の手順に従います。

  1. ツールバーの [Run] ボタンをクリックしてテストケースの実行を開始します。
_images/chapt3_img08_Run.png
  1. すぐに [Pause] ボタンをクリックして、テストケースの実行を一時停止します。
_images/chapt3_img19_Pause-only.png
  1. [Step] ボタンを繰り返しクリックします。
_images/chapt3_img11_Step.png

[検索] ボタン

[検索] ボタンを使うと、現在 (ブラウザに) 表示されている Web ページ上の UI 要素のうち、現在選択されている Selenium コマンドで使われているのはどの UI 要素かを知ることができます。この機能は、コマンドの最初のパラメータでロケータを使う場合に便利です (Selenium のコマンドに関する章の「 要素の特定 」を参照)。 [検索] ボタンは、Web ページ上の UI 要素を指定する必要があるあらゆるコマンド、すなわち clickclickAndWaittype 、および一部の assertverify コマンドなどで使用できます。

[テーブル] タブで、ロケータパラメータを持ついずれかのコマンドを選択します。[検索] ボタンをクリックします。Firebox ブラウザに表示されている Web ページに注目します。ロケータパラメータで指定されている要素が、明るい緑の四角で囲んで表示されます。

デバッグ時のページソースの参照

テストケースをデバッグするときは、しばしばページソース (テスト対象の Web ページの HTML) を参照して問題を解決しなければなりません。Firefox では、ページソースも簡単に参照できます。具体的には、目的の Web ページを右クリックし、[ページのソースを表示] を選択するだけです。これで、ソースの HTML が別のウィンドウに表示されます。テスト対象の UI 要素を HTML から見つけるためのキーワードを検索するには、このウィンドウの [編集] メニューにある [検索] を使ってください。

また、ソースを見たい Web ページの一部を選択し、右クリックして表示されるメニューから [選択した部分のソースを表示] をクリックする方法もあります。この場合は、ソースの一部だけが別のウィンドウに表示され、選択した部分が強調表示されます。

ロケータアシスタンス

Selenium-IDE は、ロケータ型引数を記録するたびに追加情報を保存し、この追加情報を使って、代わりに使用できるほかのロケータ型引数をユーザーに提示できるようにしています。この機能は、ロケータについて詳しく学ぶ上で非常に有益なだけでなく、記録された型とは異なる型のロケータを使う場合にしばしば必要となります。

ロケータアシスタンスは、Selenium-IDE ウィンドウ内の [対象] フィールドの右端にドロップダウンリストとして表示されます (ドロップダウンリストが表示されるのは、[対象] フィールドに入力されている引数が、記録されたロケータ型引数である場合だけです)。次に示すのは、あるコマンドのドロップダウンリストの内容です。ドロップダウンリストの最初の列には、代わりに使用できるロケータが表示され、2 列目にはそれぞれの型が表示されることに注意してください。

_images/chapt3_img22_IDE_Locator_Assistance.png

テストスイートの作成

テストスイートとはテストケースの集合のことで、Selenium-IDE ウィンドウの一番左にある [テストスイート] ペインに表示されます。[テストスイート] ペインを手動で開いたり閉じたりするには、[テストケース] ペインの右端 (ペインが閉じている場合は Selenium-IDE ウィンドウ全体の左端になります) の半分ほど下にある小さな点を選択します。

[テストスイート] ペインは、既存のテストスイートが開かれるか、 または ユーザーが [ファイル] メニューの [テストケースを新規作成] をクリックすると、自動的に開きます。後者の場合、新しいテストケースは直前のテストケースのすぐ下に表示されます。

既存のテストケースをテストスイートに読み込む操作は、Selenium-IDE ではまだサポートされていません。既存のテストケースを追加して、テストスイートを作成または修正するには、ユーザーが手動でテストスイートファイルを編集する必要があります。

テストスイートファイルは、1 列のテーブルを含む HTML ファイルです。<tbody> セクション内の各行のセルには、テストケースへのリンクが収められています。次に示すのは、4 つのテストケースを含むテストスイートの例です。

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Sample Selenium Test Suite</title>
</head>
<body>
    <table cellpadding="1" cellspacing="1" border="1">
        <thead>
            <tr><td>Test Cases for De Anza A-Z Directory Links</td></tr>
        </thead>
    <tbody>
        <tr><td><a href="./a.html">A Links</a></td></tr>
        <tr><td><a href="./b.html">B Links</a></td></tr>
        <tr><td><a href="./c.html">C Links</a></td></tr>
        <tr><td><a href="./d.html">D Links</a></td></tr>
    </tbody>
    </table>
</body>
</html>

ノート

テストケースファイルは、呼び出し元のテストスイートファイルと同じ場所に置く必要はありません。実際、Mac OS と Linux システムではそのとおりです。ただし、この項目の執筆時点では、Windows システムで使う場合にはバグがあって、テストケースファイルを呼び出し元のテストスイートファイルと別の場所に置くことはできません。

ユーザー拡張スクリプト

ユーザー拡張スクリプトは、ユーザー独自のカスタマイズや機能を作成して Selenium の機能を拡張できる JavaScript ファイルです。多くの場合、コマンドのカスタマイズという形を取りますが、ユーザー拡張スクリプトによる機能拡張はコマンドの追加だけに限定されません。

ユーザーが作成した多くの有益な 拡張スクリプト があります。

おそらく Selenium-IDE のすべての拡張スクリプトの中で最も人気があるのは、while ループとプリミティブな条件判定によってフロー制御を可能にする goto_sel_ide.js でしょう。この拡張スクリプトの使用例については、作者が用意した ページ [訳注:リンク切れです]を参照してください。

この拡張スクリプトをインストールするには、Selenium-IDE の [オプション] メニューで [設定] をクリックし、 [一般] タブの [Selenium Core 拡張スクリプト (user-extension.js) のパス] フィールドに、ファイルのパス名を入力します。

_images/chapt3_img31_Extensions_install.png

[OK] ボタンをクリックしたら、拡張スクリプトを読み込むために、Selenium-IDE をいったん閉じて開く必要があります。また、拡張スクリプトに変更を加えた場合も、Selenium-IDE をいったん閉じて開く必要があります。

独自の拡張スクリプトを作成する方法については、Selenium リファレンス ドキュメントの終わりの方に説明があります。

フォーマット (形式)

[オプション] メニューの [設定] をクリックすると表示される [フォーマット] タブでは、テストケースの保存と表示に使う言語を選択できます。デフォルトは [HTML] です。

作成したテストケースを Selenium-RC を使って実行する場合には、作成されたテストケースをプログラミング言語に変換するためにこの機能が使われます。テストプログラムの開発用に Selenium-RC で使う言語 ([Java]、[PHP] など) を選択し、次に [ファイル] メニューの [保存] を使ってテストケースを保存します。これで、テストケースは、選択した言語の一連の関数に変換されます。テストをサポートするプログラムコードは、基本的に、ユーザーに代わって Selenium-IDE によって生成されます。

生成されたコードが自分のニーズに合わないときは、生成プロセスが定義された設定ファイルを編集することで、生成されるコードを変更できることに注意してください。サポートされている言語ごとに設定があり、これらの設定を編集できます。設定は、[オプション] メニューの [設定] をクリックすると表示される [フォーマット] タブにあります。

ノート

この項目の執筆時点では、この機能はまだ Selenium の開発者によってサポートされていません。しかし、筆者は C# のフォーマットに少し変更を加えるだけで、うまく動作させることができました。

異なるブラウザでの Selenium-IDE テストの実行

Selenium-IDE 自体は Firefox を対象にしたテストしか実行できませんが、Selenium-IDE で作成したテストは、Selenium-RC サーバーを呼び出すシンプルなコマンドラインインタフェースを使うことで、ほかのブラウザを対象に実行することができます。詳細については、Selenium-RC に関する章の Selenese テストの実行 を参照してください。特に関連性が高いのは、 -htmlSuite コマンドラインオプションです。

トラブルシューティング

以下は、Selenium-IDE で発生することが多いさまざまな問題について、実際の画面を示しながら説明したものです。

_images/chapt3_img30_Trouble_startup.png

この問題は、Selenium-IDE を初めて実行したときに発生することがあります。解決策は Selenium-IDE をいったん閉じて開き直すことです。このバグは SIDE-230 として登録されています。


_images/chapt3_img24_Trouble_open.png

[ファイル] メニューの [開く] を使ってテストスイートファイルを開こうとしました。 [ファイル] メニューの [テストスイートを開く] を使ってください。


_images/chapt3_img27_Trouble_timing.png

この種の error は、タイミングの問題で起きることがあります。たとえば、コマンドのロケータで指定されている要素が、コマンドが実行された時点ではまだ完全に読み込まれていなかった、などです。エラーが発生したコマンドの前に pause 5000 を入力して、問題がタイミングに関するものなのかどうか切り分けてみてください。もしタイミングの問題なら、失敗するコマンドの直前に適切な waitFor* コマンドまたは *AndWait コマンドを入力して原因を調べてください。


_images/chapt3_img28_Trouble_param.png

上の open コマンドのように、変数による置き換えを使おうとすると必ず失敗する場合は、使おうとしている値を格納する変数が、実際には作成されていないことを示します。多くの場合、 [対象] フィールドに入力する必要がある変数を [値] フィールドに入力しているか、またはその逆にしていることが原因です。上の例の場合、 store コマンドの 2 つのパラメータの入力順序が間違っています。どの Selenese コマンドの場合も、最初の必須パラメータは [対象] フィールドに、2 つ目の必須パラメータ (必要な場合) は [値] フィールドに入力する必要があります。


_images/chapt3_img23_Trouble_ts.png

テストスイート内のいずれかのテストケースが見つかりません。該当するテストケースが、テストスイートで指定されている場所に実際に存在するかどうか確認してください。また、実際のテストケースファイルの拡張子が .html になっているかどうか、さらに、呼び出し元のテストスイートファイル内でも、該当するテストケースファイルの拡張子が .html になっているかどうか確認してください。


_images/chapt3_img25_Trouble_space.png

Selenium-IDE では 空白の有無が非常に重要 です。コマンドの前後に余計な空白があると、コマンドとして認識されません。


_images/chapt3_img26_Trouble_extension.png

Selenium-IDE は拡張スクリプトファイルの内容を読み込むことができませんでした。[オプション] メニューの [設定] をクリックすると表示される [一般] タブの [Selenium Core 拡張スクリプト (user-extension.js) のパス] フィールドに、拡張スクリプトへの適切なパス名が入力されているかどうか確認してください。また、拡張スクリプトファイルに変更を加えた場合も、 [Selenium Core 拡張スクリプト (user-extension.js) のパス] フィールドの内容を変更した場合も、Selenium-IDE を再起動する必要があります。


_images/chapt3_img29_Trouble_collapsed.png

この種のエラーメッセージは、エラーがないのに Selenium-IDE がエラーメッセージを表示しているように見えます。しかし、実際の値が、テストケースで指定された値と一致していないという点については、Selenium-IDE に間違いはありません。問題は、ログファイルのエラーメッセージでは 2 つ以上の空白が 1 つに圧縮されていて、どの部分がエラーになったのかわかりにくい点にあります。上の例では、 verifyTitle のパラメータの “Systems” と “Division” の間に 2 つの空白があることに注目してください。一方、ページの実際のタイトルでは、これらの単語の間には空白が 1 つしかありません。Selenium-IDE がエラーを生成したのはこのためです。