(注:このブログはもう更新していません)この日記は私的なものであり所属会社の見解とは無関係です。 GitHub: takahashikzn

[クラウド帳票エンジンDocurain]

Firefox48以降でSelenium-RCが動作しない問題を解消する

昨日やっとトレーナーレベル22になりました。わーい。

御存知の通り上野公園は毎週末ヤバイことになってますが、コイキングだらけのおかげでギャラドスを取れました。


さて、ウチは非プログラマもテスターとして戦力化しているので、Selenium IDEベースの環境を構築しています。

ということは当然ながら、Selenium-RCでCIを回すことになります。


先日Firefox48がリリースされたのでアップデートしてみたところ、テストが全く動かなくなりました。 調べてみたところ、アドオンの署名チェックが強制されるようになったことが原因*1のようです。 このスレッドが参考になります。

http://groups.google.com/forum/#!topic/selenium-users/kDsWkujq0Y4

結論→アドオン開発向けFirefoxビルドを使え

このスレッドの結論としては、

Technically Selenium FirefoxDriver should work with Firefox 48 if you 
disable e10s (multiprocessing) and use an unbranded build, such as 
DevEdition or a custom build.  This is because 48 also ships with 
add-on signing, and FirefoxDriver isn’t signed. 
技術的には、FirefoxDriverはFirefox48のunbrandedビルド上でe10s(マルチプロセス化)を無効化すれば動くはずだ。
Firefox48から署名チェックを強制するようになったが、FirefoxDriverは署名なしであることが問題の原因である。

とのことです。


『unbrandedビルド』とは、FAQにある通り

How will the unbranded versions of Firefox work?

They work just like Firefox, with two differences: they will have a setting to disable mandatory signature checks, and they will not have the Firefox name and logo (instead using a generic name and logo). These builds are available in the en-US locale only.
unbrandedビルドって何?

Firefox通常版と全く同じように動く。ただし...

* アドオンの署名チェックが無効化されている
* 『Firefox』という名前やロゴが消されている(かもしれない)
* 英語版のみ

だそうです。


とりあえずこいつをこのへんからダウンロードして、プロファイルで

user_pref('xpinstall.signatures.required', false);
user_pref('browser.tabs.remote.autostart', false);

としておけば、現時点の最新ベータ版である49.0b1でも元通り動くようになりました。


2016-10-06追記

現時点最新版の50.0b4でも動作するので当面はこの方法で行けそうです。

2017-03-16追記

現時点最新版の53.0b1もOK

*1:Selenium-RCは内部的にFirefoxのアドオンAPIを利用しています