ユーザが入力した値を使ってSeleniumを実行する方法

先日、ユーザが入力した値を使ってSeleniumを実行できるかって話があって、Selenium IDEじゃなくても出来ますよーって言ってみたけど、実際試したことがなかったので、確認してみました。
Selenium IDE限定ってのは、下記のnitoyonさんの記事からだと思います。

nitoyonさんの記事では、パスワードってこともあって、FirefoxXPCOM使ってパスワード形式のプロンプト出してますが、パスワード形式にこだわらなければ、JavaScriptのpromptでも同じようなことが出来るので、Selenium IDEに限定されないはず。


prompt使って、ユーザが入力した値を変数(下記だと"value")に格納する場合は

コマンド 対象
store javascript{prompt("入力してください", "")} value

直接入力した値をテキストエリアとかに入れたい場合は

コマンド 対象
type name javascript{prompt("入力してください", "")}

ただ、IE7は、promptに対してもブロックがかかるので、もしもIE7でやるならば、セキュリティの設定で、「スクリプト化されたウインドウを使って情報の入力を求めることを Webサイトに許可する」ってとこを、有効にしないとうまく動きません。。。


以下は、http://www.google.jp/ に対して入力した文字で検索するテストケースのサンプルです。

コマンド 対象
open /webhp?hl=en
store javascript{prompt("入力してください", "")} value
type q ${value}
clickAndWait btnG  
assertTitle ${value} - Google Search
assertValue q ${value}