崖っぷちの男

たぶん技術っぽいネタ。ブログ名が決められない

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>表の説明