JavaScriptをがんばるブログ

React,OSS,ソフトウェア開発が中心のブログです👨‍💻

自動記録を覚えたその次に! selenium IDE入門

selenium IDEの録画ボタンで[type][clickAndWait]コマンド辺りの記録が出来るようになった人が、
assert系コマンドでテストを書く時に知っていると捗ること〆(・∀・@)

表示されているテキストが正しいが確認する

コマンド[assertText]
対象[CSSセレクタ,XPathなど]
[ひでまる]

[対象]elementのinnerTextが値と等しいか検証する。
innerTextと[]を検証するのでテキストフォームの入力値検証などには使えない。
selenium IDE上の、[対象]入力欄右の[select]ボタンをクリックすると、
web開発者ツールのようにマウスカーソルで対象elementを選択出来る。

後述する変数、Implicit Waitと組み合わせて使用する事が多い。

assert系コマンドなのでエラーが出るとそこでテストが中断される。
エラーになった場合もテストを続行させたい時は[verifyText]コマンドを使う。

target="blank"/target="new"のリンクを開いて処理を続行する方法

参考:http://blog.mogya.com/2009/07/selenuimtarget-blank.html

コマンド [getEval]
対象[s=window.document.getElementsByTagName('A');for(i=0;i<s.length;i++){s[i].target='_self';}]
[ ]

web driverのswitchToメソッドのように、
別タブへ操作対象を切り替える方法が用意されていないようなので
現状はこの方法で。
aタグのelementを全て取得し、[target="_self"]に書き換え、
同じタブで開かせるJSを実行しています。

ちゃんと別タブ切り替えをするなら別タブで開くwindowオブジェクトに名前を付けてあげて、
window.open("","my_window")するJSを実行する形になりそう、現在調査中。

selenium IDEで変数の宣言/使用

参考:http://www.ninton.co.jp/?p=1514

コマンド [store]
対象 [ひでまる]
[editor]

[]=key [対象]=value

変数の展開は[${値}]というシンタックスで行う。
[${editor}]と書くと[対象]で入力した[ひでまる]が展開される。

使用例
コマンド[type]
対象[id=use_editor]
[${editor}]

id=use_editorのテキストボックスに、変数${editor}の値(ひでまる)を入力

直感では[]がvalueだと認識しがちなので注意

Implicit Wait

ページロード直後など、
検査対象が見つかるまで待機してくれる、web driverだとよく使われるコマンド。
selenium IDEでは[Selenium IDE: Implicit Wait]というプラグインを導入する事で使用可能
https://addons.mozilla.org/ja/firefox/addon/selenium-ide-implicit-wait/

コマンド[setImplicitWait]
対象[1000(ms)]
[ ]

対象には要素が見つからない場合のタイムアウト秒数を指定する。