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 で実行できなかった。


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