先日、ユーザが入力した値を使ってSeleniumを実行できるかって話があって、Selenium IDEじゃなくても出来ますよーって言ってみたけど、実際試したことがなかったので、確認してみました。
Selenium IDE限定ってのは、下記のnitoyonさんの記事からだと思います。
nitoyonさんの記事では、パスワードってこともあって、FirefoxのXPCOM使ってパスワード形式のプロンプト出してますが、パスワード形式にこだわらなければ、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} |