Firefox の Selenium IDE で覚えておこうと思ったコマンド
元々テスト用途で使ったことがあった Selenium IDE ですが、つい最近、この Selenium IDE をブラウザで特定の操作を自動実行させるために使ってみました。
でそもそも Selenium のコマンドってほとんど覚えていなかったのですが、いろいろ自動実行させようとして初めていくつかのコマンドについて知ったので、今回はそれをメモっておきます。
指定した時間待つコマンド
コマンド | pause |
---|---|
対象 | ポーズする時間(ミリ秒) |
値 |
まあ基本っぽい気がするんですが、テストの場合は「◯◯AndWait」で何かが起きるまで待つのがふつうだったのでとりあえず一定時間待つ、というこのコマンドは使っていませんでした。
ID付きでウインドウを開く、あるIDのウインドウを選択する、ウインドウを閉じる
コマンド | openWindow |
---|---|
対象 | パス |
値 | ID |
コマンド | selectWindow |
---|---|
対象 | ID |
値 |
コマンド | close |
---|---|
対象 | |
値 |
元のウインドウは開いたまま、別のウインドウをいて特定の URL にアクセスして、終わったらウインドウを閉じておく、みたいな時に使いました。
ページ内のオブジェクトについてJSで何か実行する
コマンド | assertEval |
---|---|
対象 | this.browserbot.getCurrentWindow().[...] |
値 | 戻ってくるはずの値 |
this.browserbot.getCurrentWindow() で window オブジェクトが取得でき、また JavaScript でそれを操作できます。ここで window オブジェクトが取得できずにハマったのですが、古い Firefox (3.6あたり) ではうまくいかなかったので、うまくいかなければ Firefox を更新した方がいいかもしれないです。
フォームでファイルをアップロードする
コマンド | type |
---|---|
対象 | xpath=//input[@name='name属性'] |
値 | アップロードするローカルファイルのパス |
これだとファイルが選択されるだけなので、このあと submit ボタンを click する必要があります。わざわざ書かなくても Selenium で操作を記録すればこのコマンドが入るのですが、そもそもファイルアップロードも普通にできるということと、それが type なのを知らなかったのでメモ。
JavaScriptで得た値をコマンドで使う
(例)
コマンド | openWindow |
---|---|
対象 | javascript{'http://www.hogehoge.com?foo=' + bar()'} |
値 |
対象のフィールドにはじめ、次のように書いてしまってハマったのですが、さすがに無理みたいです。
http://www.hogehoge.com?foo=javascript{bar() /* うまくいかない例です */}
上のように静的な部分もスクリプトにいれておけば問題はなさそうです。
今回、表を使ったんですが普通にはてな記法で表を書くと上の方に <br> タグが追加されてしまって空白が空くのは自分だけなんでしょうか。。
ちなみに <br> タグを自分で書くと回避できるっぽいです:
|*1|富士山| |*2|鷹| |*3|茄子| <br>表の説明