Firefox のタブの設定によって動作するものと動作しないものがある

正直、理由がさっぱり分からなくて困っているのだが、
SeleniumスクリプトFirefox から動かす際に、
「メニュー − ツール − オプション − タブ」
の「新しいウィンドウを開くリンクは次の場所に開く」
の設定を
「現在のタブまたはウィンドウ」
だと動かなくて、
「新しいタブ」
にすると動くスクリプトがあった。


また、動かないと言っても、何回に一回かは動いたりする。


ある画面(A)から画面(B)を新しいウィンドウで開いて、
B の操作をしていると、
clickAndWait でボタンを押した際に、何故かずっと待ってしまったり
本来存在してるはずの要素の存在をチェックしようとしても存在しないと言われたり。。。


謎だ。
けど、うごいたから、ま。いいか。
(最近の口癖「ま。いいか。」。技術者としていかがなものか>俺)

Firefox で input type="file" に対して Selenium の type コマンドが効かない件

Selenium でファイルアップロード用の入力フィールドに値を入れようと以下のコマンドを発行したのだが、

<tr>
	<td>type</td>
	<td>//input[@type='file' and @name='upFile']</td>
	<td>C:\hoge</td>
</tr>

FireFox ではストップしてしまう。


Selenium Recorder からは実行できたのだが、
サーバーにスクリプトを上げて、TestRunner から実行しようとすると止まってしまう。


これは、Selenium の問題ではなくて、FireFox がセキュリティ上の問題から、
JavaScript から

<input type="file" />

value にアクセスできないようにしているからであった。


なんとか回避しようと FireFox の設定ファイルである user.js (FIREFOX_HOME/defaults/profile/user.js)に

user_pref("capability.policy.default.HTMLInputElement.value", "allAccess");
user_pref("capability.policy.default.checkloaduri", "allAccess");

とかして、無理やりセキュリティレベル下げようと思ったのだが、ダメだった。


100パーセント無理なのかな。


今回は他の操作で代替できたので、
そちらに変更して諦めた。
(SeleniumRecorder ハックして、自前のローカルに置いた TestRunner 実行できるように〜。
とか考えたけど、時間かかりそうだったのでパス)

ちなみに、Selenium の実行を IE で行えばこの問題は回避できる。
ただし、IEFireFoxSelenium の挙動が微妙に違うので、
(type コマンドへの1番目の引数の改行の扱いが違う点)
IE で実行できなかった。


その問題についてはまた別の機会に。

Selenium を動作させる上でのリソースの指針

SeleniumJavaScript で動作する自動テストツールである。
ゆえに、ブラウザの JavaScript に対するセキュリティレベルは、
可能な限り下げたほうが自動実行させやすい。


また、TestSuite で大量のテストを自動実行させると、
結構マシンパワー(CPU、メモリともに)を食う。


それゆえ、Selenium 専用のマシンは必須。


開発者が普段使ってるブラウザのセキュリティレベルを下げるのは危険だし、
大量のファイルを実行させると他の作業が出来なくなる。


今のプロジェクトでは Selenium 用に
10台のマシンをリースしたのだが、
思ったより安い。たしか月に15万ぐらい(うろ覚え)。


今、Selenium で出来るテストを人手でやろうと思ったら、
100万は超えるオーダーだし、
しかも Selenium なら何回も繰り返せるので、
15万なんて安い安い。


追記;
お。
同じような感覚持ってる人発見。
http://d.hatena.ne.jp/akahigeg/20060303

Selenium 情報源 at 03-02-2006

現時点での Selenium の情報源へのリンク


Selenium ver.0.5 勝手にまとめサイト
http://mk.zansu.com/selenium/
日本語で読めるサイトとしてはここが最強
(なんかこの紹介の文体エロサイト紹介のサイト風味www)
今のところこのサイトで気づいた点として、
chooseCancelOn ってコマンドの説明があるんだけど、
バージョンが変わってるせいか、
chooseCancelOn → chooseCancelOnNextConfirmation と読み替えるべし(多分)。


Selenium 本家
http://www.openqa.org/selenium/index.html
本家本元 Selenium 作ってるとこ。


Selenium Recorder と IDE 作った人???
http://www.kbmj.com/tech/index.php?catid=3&blogid=1
今、調べてて見つけました。
Recorder って日本の方が作ってるんだ???
Selenium Recorder の不具合を色々修正してるので、
パッチ送りたい〜


Web アプリケーションテストツール Selenium のテスト記述から開放してくれる Firefox 拡張 Selenium IDE
http://cl.pocari.org/2006-02-15-3.html
Selenium IDE の紹介
まだ Selenium IDE 使ったことないので、このエントリー参考にして勉強してみます。
IDESelenium Recorder のエンハンスなのかな?!


webアプリケーションテストツール seleniumがヤバすぎる
http://d.hatena.ne.jp/secondlife/20050525/1116947520
はてなの中の人 id:secondlife さんの熱い Selenium 紹介。


Selenium Integrationのあるpatchを利用すると、test記述部分に素のselenium test(htmlのtable内部にtr,tdタグで書いていく)を書かないといけないので面倒。なのでyamlからselenium tastを作るやつを組み込んで簡単にtestが書けるようにと試行錯誤中。あーおもしろい。
がその後どうなってるのか超気になってるのですが、その後どうなってるのでしょうか。


Web アプリケーションテストツール Selenium のテスト記述から開放してくれる Firefox 拡張 Selenium IDE
http://cl.pocari.org/2006-02-15-3.html
Selenium IDE の操作についての記事

Selenium Blog 開始

最近、Selenium にはまり気味(良い意味で)なので、

  • 情報まとめるため
  • Slenium に興味ある人のフィードバック受けるため
  • 気づいた事、小さな tips をメモ、紹介するため

などなどの理由で Blog はじめました。


将来的には Selenium 本家のサイトのドキュメントの日本語とかに挑戦できたらいいな。