WebDriverをXMLから呼び出す』でXMLからWebDriverを呼び出して使う方法は、そんなに捨てたもんじゃないということがわかりました。テストの自動化のためにはもっとやることはたくさんあります。いうときはAntと組み合わせるのが常道なんでしょうが、結局JUnitなどで書いたテストケースをAntのタスクとして呼び出すだけになっては面白くありません。そこで、Antから直接WebDriverを実行してみようというのが、この試みです。調べてみると、Antに独自タスクを追加することはさほど難しい話ではないようです。WebDriverを呼び出す独自タスクを定義して使えるようにすれば素敵なことができそうです。そこでまず、どういう仕様にすべきかを考えます。タスクの種別AntDriverで追加するタスクには以下の種類があります。reporterロケータ各タスクの説明の前に、ロケータについて説明します。Selenium/WebDriverには、要素を見つける手段は複数用意されています。ここではSeleniumの伝統に従い、すべてをひっくるめてロケータと呼ぶことにします。ロケータはそれを必要とするタスクの属性として指定します。指定可能なロケータ属性は以下の種類があります。classnameHTML要素のclass属性を指定します。idHTML要素のid属性を指定します。linktextHTMLのA要素内のテキストを指定します。nameHTML要素のname属性を指定します。tagnameHTML要素のタグ名を指定します。xpathXPath式によって要素を指定します。これらのロケータは、複数指定された場合は記述された順に評価されていき、最初に対象の要素が見つかった時点で探索を終了し、各タスクに渡されます。driverタスク説明ブラウザを起動します。driverは通常スレッドに1つだけ割り当てられるため、Antのメインスレッド内では一度呼び出すだけで、後続のタスクではそれが利用されます。同じスレッド内で複数の異なるブラウザ名を指定しても、2番目以降の指定は無効となります。複数のブラウザを利用する場合は、threadタスク内でdriverタスクを呼び出すことで行います。属性capabilities使用するブラウザの設定を指定します。指定可能な値はブラウザによります。descriptionこのタスクの説明を記述します。name使用するブラウザを指定します。指定可能な値は'ie','firefox','htmlunit'のいずれかとなります。'fail'のいずれかを指定します。'ignore'が指定された場合は、失敗してもメッセージを出力するだけで後続のタスクを継続します。'fail'を指定した場合は、失敗するとAntの実行を中止します。デフォルトは'fail'です。この値はこのドライバーを使用するすべての子タスクのonerror属性のデフォルト値となります。timeout正の整数値を秒単位で、指定した要素が見つかるまでの待機時間を指定します。デフォルト値は'10'です。この値はこのドライバーを使用するすべての子タスクのtimeout属性のデフォルト値となります。verbose'true'または'false'を指定します。デフォルト値は'true'です。'true'の場合は冗長なメッセージを出力します。この値はこのドライバーを使用するすべての子タスクのverbose属性のデフォルト値となります。version使用するブラウザのバージョンを指定します。指定した要素が存在するかどうかを調べます。属性descriptionこのタスクの説明を記述します。displayed'true'または'false'を指定します。'true'を指定するとこの要素が表示されていることを、'false'を指定すると表示されていないことを検証します。enabled'true'または'false'を指定します。'true'を指定するとこの要素が有効かどうか、'false'を指定すると無効かどうかを検証します。xpathロケータを指定します。いずれかの指定が必須です。'fail'のいずれかを指定します。'ignore'が指定された場合は、失敗してもメッセージを出力するだけで後続のタスクを継続します。'fail'を指定した場合は、失敗するとAntの実行を中止します。デフォルトは'fail'です。present'false'を指定すると、指定の要素が「存在しない」ことを確認します。その場合、timeoutの時間だけ待たされることになるため、明らかにすべてのデータが読み込まれている状態である場合はtimeout=“0”と同時に指定すべきです。selected'true'または'false'を指定します。'true'を指定するとこの要素が選択されていることを、'false'を指定すると選択されていないことを検証します。timeout正の整数値を秒単位で、指定した要素が見つかるまでの待機時間を指定します。明示的に指定されない場合はdriverタスクのtimeout属性の値が使用されます。verbose'true'または'false'を指定します。'true'の場合は冗長なメッセージを出力します。明示的に指定されない場合はdriverタスクのverbose属性の値が使用されます。子要素clickこのタスクに指定されたロケータで見つかった要素のすべてに対して、clickタスクを実行します。elementこのタスクに指定されたロケータで見つかった要素のすべてに対して、elementタスクを実行します。navigateこのタスクに指定されたロケータで見つかった要素のすべてに対して、navigateタスクを実行します。selectこのタスクに指定されたロケータで見つかった要素のすべてに対して、selectタスクを実行します。submitこのタスクに指定されたロケータで見つかった要素のすべてに対して、submitタスクを実行します。sendkeysこのタスクに指定されたロケータで見つかった要素のすべてに対して、sendkeysタスクを実行します。textこのタスクに指定されたロケータで見つかった要素のすべてに対して、textタスクを実行します。指定した要素がテキストを含むかどうかを検証します。属性descriptionこのタスクの説明を記述します。xpathテキストを含む要素のロケータ指定します。どれも指定されない場合は、HTMLのbody要素内のすべてのテキストが対象となります。match検索対象のテキストを指定します。'fail'のいずれかを指定します。'ignore'が指定された場合は、失敗してもメッセージを出力するだけで後続のタスクを継続します。'fail'を指定した場合は、失敗するとAntの実行を中止します。デフォルトは'fail'です。present'false'を指定すると、指定のテキストが「存在しない」ことを確認します。その場合、timeoutの時間だけ待たされることになるため、明らかにすべてのデータが読み込まれている状態である場合はtimeout=“0”と同時に指定すべきです。timeout正の整数値を秒単位で、指定した要素が見つかるまでの待機時間を指定します。明示的に指定されない場合はdriverタスクのtimeout属性の値が使用されます。verbose'true'または'false'を指定します。'true'の場合は冗長なメッセージを出力します。明示的に指定されない場合はdriverタスクのverbose属性の値が使用されます。