つれづれなるままに。

webテストの自動化について備忘録のつもりで書いています

selenium2.21.0 safariDriver 対応だというので試してみた

selenium2.21.0で とうとう safariに対応したとのこと。
で、とりあえずどんなものか試してみる。

下記を参考に進めてみる
http://code.google.com/p/selenium/wiki/SafariDriver

まず Safari Developer Program(無料)に登録して 証明書を発行しろ、と。

登録は書いてある通り無料で  appleIDがあればそれを使うことも可能。

で、登録が完了して「Safari Dev Center」画面に遷移してきたら 

右にある「Safari Extension Certificate Utility」にある 「Get Started」へ。

「Developer Certificate Utility」画面で「Create Certificates」を押下

右上の「Add Certificate」を押下

で、ダイアログに下記の作成手順が表示される。

自分のmacのユーティリティーフォルダーにある「キーチェーンアクセス」を起動

メニューの「キーチェーンアクセス」-「証明書アシスタント」-「証明局に証明書を要求」を選択

表示されるダイアログに eMailとプライベートキーとなる名前を入力し、「ディスクに保存」を選択

保存場所を聞かれるのでこれを指定すると「CertificateSigningRequest.certSigningRequest」ファイルが作成される

で、ブラウザに戻って、「Continue」を押下

先ほど保存したファイルを指定し、「Generate」を押下

しばらくすると作成されるので「Continue」を押下

作成された証明書をダウンロード

ダウンロードした証明書ファイルをクリックするとキーチェーンアクセスに登録する

ここまでがエクステンションを登録するために必要な証明書の作成。

ここから エクステンションの作成。
まず、ソースの取得 svn checkout http://selenium.googlecode.com/svn/trunk/ selenium-read-only

作成は 
$ ./go safari
(in /Users/Dolias/Devroom/selenium-read-only)
Compiling: //javascript/safari-driver:extension as build/javascript/safari-driver/extension.js
Compiling: //javascript/safari-driver:injected as build/javascript/safari-driver/injected.js
 :
 :
0 error(s), 5 warning(s), 96.5% typed
Preparing: //javascript/safari-driver:SafariDriver as build/javascript/safari-driver/SafariDriver.safariextension
Compiling: //java/client/src/org/openqa/selenium:base as build/java/client/src/org/openqa/selenium/base.jar
Compiling: //java/client/src/org/openqa/selenium/interactions:api as build/java/client/src/org/openqa/selenium/interactions/api.jar
Compiling: //java/client/src/org/openqa/selenium/internal:codecs as build/java/client/src/org/openqa/selenium/internal/codecs.jar
Compiling: //java/client/src/org/openqa/selenium/logging:logging as build/java/client/src/org/openqa/selenium/logging/logging.jar
Compiling: //java/client/src/org/openqa/selenium:webdriver-api as build/java/client/src/org/openqa/selenium/webdriver-api.jar
Compiling: //java/client/src/org/openqa/selenium/remote:base as build/java/client/src/org/openqa/selenium/remote/base.jar
Compiling: //java/client/src/org/openqa/selenium/browserlaunchers:proxies as build/java/client/src/org/openqa/selenium/browserlaunchers/proxies.jar
Compiling: //java/client/src/org/openqa/selenium/io:io as build/java/client/src/org/openqa/selenium/io/io.jar
Compiling: //java/client/src/org/openqa/selenium/os:os as build/java/client/src/org/openqa/selenium/os/os.jar
Compiling: //java/client/src/org/openqa/selenium/browserlaunchers:windows_proxy_manager as build/java/client/src/org/openqa/selenium/browserlaunchers/windows_proxy_manager.jar
Compiling: //java/client/src/org/openqa/selenium/net:net as build/java/client/src/org/openqa/selenium/net/net.jar
Compiling: //java/client/src/org/openqa/selenium/browserlaunchers:launcher-utils as build/java/client/src/org/openqa/selenium/browserlaunchers/launcher-utils.jar
Compiling: //java/client/src/org/openqa/selenium/browserlaunchers/locators:locators as build/java/client/src/org/openqa/selenium/browserlaunchers/locators/locators.jar
Compiling: //java/client/src/org/openqa/selenium/interactions:interactions as build/java/client/src/org/openqa/selenium/interactions/interactions.jar
Compiling: //java/client/src/org/openqa/selenium/remote:common as build/java/client/src/org/openqa/selenium/remote/common.jar
Compiling: //java/client/src/org/openqa/selenium/remote:remote as build/java/client/src/org/openqa/selenium/remote/remote.jar
Compiling: //java/client/src/org/openqa/selenium/safari:safari as build/java/client/src/org/openqa/selenium/safari/safari.jar

ワーニングが出ているができた模様。

safariを起動。

メニュー「開発」より「機能拡張ビルダーを表示」を選択

左下の「+」より「機能拡張を追加」を選択

先ほど作成した「SafariDriver.safariextension」フォルダーを指定

開いた直後は「証明書がない」となっていましたが、少し放置していたらさきほどの証明書が反映されたらしく「インストール」を押下

これで、エクステンションのインストール完了。

とりあえず、下記のソースで動作することを確認してみる

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.safari.SafariDriver;

public class Test01 {
public static void main(String[] args) {
WebDriver dr = new SafariDriver();
dr.get("http://www.yahoo.co.jp");
dr.quit();
}

}

「おぉ!動くぞ、こいつ」

しかし、これはwindowsで試したい場合 エクステンションをどうやってインストールするんだろうか?