SeleniumとSame Origin Policy
Seleniumでは、TestRunner.htmlと同じドメイン・ポート・スキームでないと、ブラウザに実装されているSame Origin Policyによって、Javascriptエラーになります。これはただ単に同じドメインのサイトでHTTPとHTTPSを行き来するテストケースを作りたいのに、これが上記理由から不可ということになります。
このSame Origin Policyを回避する方法が、http://lists.public.thoughtworks.org/pipermail/selenium-users/2005-February/000115.htmlに列挙されています。
- ブラウザのSame Origin PolicyをOffにする。(mozilla限定)
- htaやXULとしてTestRunner.htmlを実行する。
- リバースプロキシを使って、レスポンス中のドメイン、ポート、スキームを書き換える。
- プロキシのリダイレクタ機能を使って、TestRunnerと異なるドメインの
1,2はSeleniumの長所であるクロスブラウザ性を損なってしまいます。3,4も一長一短あります。
3はレスポンスを書き換えてしまうため、動くことは動くのですが、「個人情報表示画面でhttpsモードになっていること」みたいなテストケースが実施できません。
4はTestRunnerを設置しているドメインと異なるサイトのアプリケーションは可能になりますが、度々例に挙げているような、http→httpsの切替えはできません。
以上、現段階では1つのテストケースの中で、ドメイン、ポート、スキームを切替えるテストは、なるべく作らないようにした方がよさそうです。