つれづれなるままに。

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

Selenium を使って Androidブラウザテストをする方法

実機を使って、webDriver経由でブラウザテストする場合
まず、実機にAndroidDriverをUSB経由でインストールします。
(AndroidSDK,および Javaはインストール済みでお願いします)

ドライバーはここからダウンロード
 http://code.google.com/p/selenium/downloads/list
 現時点では android-server-2.32.0.apk が最新版 

今回はPCからインストールします。
PCと実機をUSBで接続
端末の設定を行う
「設定」→「アプリケーション」→「開発元不明のアプリ」にチェックを入れて有効化
「設定」→「アプリケーション」→「開発」→「USBデバック」にチェックを入れる
androidDriverを実機にインストール
$>adb install -r android-server-2.32.0.apk

実機を見るとSelenium「大きく緑色のチェック」アイコンが表示されているはず

アイコンをタップして起動

ポートフォアーディングします
$./adb -s forward tcp:8080 tcp:8080

serialIdは下記のコマンドで取得できます
$adb devices


この状態で下記のとおりにドライバーを取得すれば操作OK.(公式に書いてある通り.)

  public void main() throws Exception {
	    WebDriver driver = new AndroidDriver();
	    driver.get("http://www.yahoo.co.jp");
	    WebElement element = driver.findElement(By.name("p"));
	    element.sendKeys("burger!");
	    element.submit();
  }

内部的には http://localhost:8080/wd/hub に接続になってます。

現状ポートは androidDriverにハードコーディングされているので自分でリコンパイルしない限り変更できません。
iOS版だとポート番号を変更できるようになっているんですが・・・