SafariDriverの作り方

この記事は古くなりました。

Apple Safari: safaridriver (no download needed, it’s pre-installed if you have Safari 10)
Drivers – Watir Project

safaridriver requires using Safari 10 on either El Capitan or Sierra.
Safari – Watir Project

だそうです。



Selenium から(私が使いたいのは Watir からですが) Safari を制御するときに必要になるのが SafariDriver です。 Safari の機能拡張で動作させるには証明書が必要で、個別にいちいち作成しなきゃいけないが非常に面倒です。
その作成方法ですが

  • Safari | Watir WebDriver(←追記:リンク先はWatir以外のサイトになってしまいました…のでクリックしないでください)

に載っています。

で話が終わるのであれば記事にしません。とても面倒でしたorz

Java JREインストール

Marverics など最近の Mac には Java が入っていません。ので先ず Apple から Java JRE 1.6 をダウンロードしてインストールします。

なお java スクリプトを動作させようとすると Oracle のサイトへ案内されますが、こちらからだと Java JRE 1.8 がインストールされていまい、目的の java スクリプトが動作しません(トラップその1)。

ソーススクリプトをダウンロード

適当な場所で以下を実行して SafariDriver のソースを selenium フォルダへダウンロードします。

$ svn co http://selenium.googlecode.com/svn/trunk selenium

スクリプト実行

上記でダウンロードしたソースのフォルダへ移動し、ソースを実行します。

$ cd selenium
$ ./go safari

先ほどのseleniumフォルダ($SELENIUM_CHECKOUT_LOCATION)以下の

$SELENIUM_CHECKOUT_LOCATION/build/javascript/safari-driver/SafariDriver.safariextension

に SafariDriver.safariextension フォルダが作られます。適当な場所へ移動してください(私は /Applications フォルダに移動させました)。

Safari作業

Safari を起動して「機能拡張ビルダー」ウィンドウを開きます。何も入っていないと思います。

Safari Developer Programへの登録

SafariDriverの使い方 - CODESCRIBBLE
の「Safari Developer Programへの登録」に従ってください。

証明書の取得

SafariDriverの使い方 - CODESCRIBBLE
の「証明書の取得」に従ってください。
証明書署名要求(CSR)を作るには、キーチェーンアクセス.app を使います(トラップその2)。

Macで証明書署名要求を作成するには、キーチェーンアクセス.appを使用します。キーチェーンアクセスのメニューから、「証明書アシスタント」 >「 認証局に証明書を要求…」 を選択します。

作った CSR を SafariDriver.safariextension に入れておきましょう。 CSR を証明書取得サイトにアップロードし、発行された証明書をダウンロードします。これも SafariDriver.safariextension に入れておけば良いと思います。そして、

ダウンロードした証明書のファイルをダブルクリックすれば、自動的に証明書がインストールされます。これで機能拡張をインストールする準備は完了です。

機能拡張のインストール

SafariDriverの使い方 - CODESCRIBBLE
の「機能拡張のインストール」に従ってください(いかんコレばかりだorz)。

機能拡張ビルダーのウィンドウの左下に「+」というボタンがあるので、そこから「機能拡張を追加」を選択し、そこで先ほど作成した SafariDriver.safariextension を選択します。画面に機能拡張が追加されるので、「インストール」をクリックすれば、機能拡張のインストールは完了です。

ちなみに引用記事では機能拡張のバージョンが0.1ですが、現在のバージョンは2.28.0まで進んでいます。