Windows環境しかないのですが、Safariでのデバッグは可能でしょうか。いえ、現状ではMac OSXが必要です。残念なことに、すでにApple社はWindows版のSafariを提供していません。
過去のSafariバイナリをインストールして稼働することもできるようですが、Appleがサポートを終了していること、さらにHTML5の実装も変わっていることからWindowsでSafariを対応することは現実的ではないでしょう。今回は、MacOS Xによる、Safariでのデバッグ方法を確認していきましょう。
尚、本記事の環境については、以下の通りです。
- MacOS X 10.10.5
- Safari バージョン 8.0.8 (10600.8.9)
前回から利用している、Selenium HubサーバとNodeサーバを引き続き利用していきましょう。環境についても、各ディレクトリを以下の通り利用します。適宜環境に合わせて読み替えて下さい。
Seleniumサーバーパス: /pitlaium
ソースコード: /pitalium-test
Mac OSX Safariを利用したデバッグ方法
以前まで、Safari拡張としてSeleniumのSafariDriverをMacで作成しなければならず、そのために、証明書を取得したりするなど、難易度が高めの設定でした。しかし最近はSeleniumサイドが、Safari拡張用の実行ファイルを用意しているので、インストールはクリックだけで済むようになりました。証明書取得など、全く必要ありませんし、AppleIDも必要ありません(Mac使ってる人は持ってると思いますが…)。
SafariDriverのインストール
SafariDriver Downloadsのダウンロードサイトの、SafariDriverのセクションよりSafariDriver.safariextz をダウンロードして下さい。

あとは、ダウンロードSafariDriver.safariextz をクリックするとSafari拡張インストールが始まります。無事インストールが終わったら、Safariの環境設定を開き、「機能拡張」をクリックして下さい。
次の画面の通り、WebDriverが無事インストールされていればOKです。
この時、機能拡張のスイッチが「入」側になっているか確認しておいて下さい。

Nodeサーバの設定
Nodeサーバには次のNodeConfigファイルをSafari向けに更新します。Safariの定義を追加して保存しておきましょう。
/pitalium/NodeConfigBrowser.json
{
"capabilities": [
{
"browserName": "firefox",
"maxInstances": 3,
"seleniumProtocol": "WebDriver"
},
{
"browserName": "chrome",
"maxInstances": 3,
"seleniumProtocol": "WebDriver"
},
{
"browserName": "safari",
"maxInstances": 3,
"seleniumProtocol": "WebDriver"
}
],
"configuration": {
"hub": "http://localhost:4444/grid/register"
}
}
Selenium Hubサーバを立ち上げます。
$ cd /pitalium
$ java -jar /pitalium/selenium-server-standalone-2.48.2.jar -role hub
次に、Nodeサーバを起動します。
$ cd /pitalium
$ java -jar selenium-server-standalone-2.48.2.jar \
-role webdriver \
-nodeConfig NodeConfigBrowser.json \
-Dwebdriver.chrome.driver=chromedriver
Seleniumコンソールをブラウザで確認して、Safariが設定されていればOKです。
http://localhost:4444/grid/console
テストコード側の設定
テストコード側で利用するブラウザを設定します。Safariの設定を記述して保存します。
/pitalium-test/src/test/resources/capabilities.json
[
{
"platform": "MAC",
"browserName": "safari"
}
]
Safariでテスト実行
後はこれまでと同様にテストを実行するだけです。
$ gradle build
もしくは、こちらで可能です。
$ gradle clean test
実行後には、テスト結果がHTMLで作成されますので、以下にあるテスト結果を確認しましょう。
/pitanium-test/build/reports/tests/index.html
最後に
Mac OSXのSafariでもPitaliumを利用してテストが可能です。以前までは、Safari開発者の証明書取得とWebDriverのコンパイルもしなければならず、
WebDriverの作成自体が困難だったのではないでしょうか。
現在ではWebDriverの提供があるため、インストールは非常に簡単です。こちらもサーバ設定さえクリアしてしまえば、他のブラウザ同様、特に問題になることはないでしょう。
これを機会にぜひMacOSX Safariでのテストも検討して下さい。
Pitaliumにご興味のある方は、チュートリアル(Pitalium:hifiveリグレッションテストライブラリ) – hifiveも参考にして下さい。
