http://code.google.com/p/nativedriver/
基本、サンプルどうりにやると動くのですが selenium というものをベースにしているので、リファレンスをあちこち 見回らないといけないので、使いそうなところをまとめてみました。
- AndroidNativeDriver
-- public メソッド
--- List
findAndroidNativeElements(By by) --- AndroidNativeElement findElement(By by) --- WebElement findElementByPartialText(String using) // 指定した部分文字列を text に持っているエレメントを得る --- WebElement findElementByText(String using) // 指定した文字列を text に持っているエレメントを得る --- List findElementsByPartialText(String using) // 指定した部分文字列を text に持っているエレメントのリストを得る --- List findElementsByText(String using) // 指定した文字列を text に持っているエレメントのリストを得る --- AdbConnection getAdbConnection() --- ScreenOrientation getOrientation() // スクリーンの向きを得る --- X getScreenshotAs(OutputType target) throws AdbException // スクリーンショットを撮る --- Keyboard getKeyboard() // キーボードインターフェースを取得する --- AndroidNativeNavigation navigate() // 操縦するための AndroidNativeNavigation オブジェクトを取得する。 --- void rotate(ScreenOrientation orientation) // 画面を回転する --- void startActivity(String activityClass) // 指定したクラス名のアクティビティーを起動する - AndroidNativeNavigation -- public メソッド --- void toActivity(String activityClass) // 指定したクラス名のアクティビティーを起動する --- void back() --- void forward() --- void to(String url) // 指定した URL を開く --- void to(URL url) // 指定した URL を開く --- void refresh()
- WebElement (org.openqa.selenium.WebElement) インタフェース -- public メソッド --- void clear() // もしこのエレメントがテキストエレメントならばクリアする --- void click() // クリックする --- String getAttribute(String name) // このエレメントの指定した名前のアトリビュートを得る --- Point getLocation() // このエレメントの座標を得る --- Dimension getSize() // このエレメントのサイズを得る --- String getText() // このエレメントのテキストを得る --- boolean isDisplayed() // このエレメントが表示されているかどうかを返す --- boolean isSelected() // このエレメントが選択されているかどうかを返す --- void sendKeys(CharSequence... keysToSend) // このエレメント上でキュー入力をシミュレートして値をセットする
- Keyboard (org.openqa.selenium.Keyboard) インターフェース -- public メソッド --- void pressKey(Keys keyToPress) --- void releaseKey(Keys keyToRelease) --- void sendKeys(CharSequence... keysToSend)
- Keys (org.openqa.selenium.Keys) 列挙型
-- 定数
--- ADD ALT ARROW_DOWN ARROW_LEFT ARROW_RIGHT ARROW_UP
--- BACK_SPACE CANCEL CLEAR COMMAND CONTROL DECIMAL
--- DELETE DIVIDE DOWN END ENTER EQUALS ESCAPE
--- F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 HELP
--- HOME INSERT LEFT LEFT_ALT LEFT_CONTROL LEFT_SHIFT
--- META MULTIPLY NULL NUMPAD0 NUMPAD1 NUMPAD2 NUMPAD3
--- NUMPAD4 NUMPAD5 NUMPAD6 NUMPAD7 NUMPAD8 NUMPAD9
--- PAGE_DOWN PAGE_UP PAUSE RETURN RIGHT SEMICOLON
--- SEPARATOR SHIFT SPACE SUBTRACT TAB UP ZENKAKU_HANKAKU -- public メソッド --- static Keys values() // 定義されているキーの一覧を得る --- static Keys valueOf(String name) // 指定された名前のキーを返す --- static String chord(CharSequence... value) // 一つの和音のように複数のキーが押されたのをシミュレートする --- char charAt(int index) --- int length() --- CharSequence subSequence(int start,int end) --- String toString() - ScreenOrientation (org.openqa.selenium.ScreenOrientation) 列挙型 -- 定数 --- LANDSCAPE --- PORTRAIT
- OutputType
(org.openqa.selenium.OutputType) インタフェース -- static フィールド --- OutputType BASE64 --- OutputType<byte> BYTES --- OutputType FILE
なお、スクリーンショットを撮るには、 AndroidNativeDriver オブジェクトを作るときに AdbConnection を渡す必要がありました。
|java| // ....
static final String ADB_PATH = "/home/hiroshi/android-sdk-linux_x86/platform-tools/adb"; static final String PNG_PATH = "/home/hiroshi/screenshot.png"; private AndroidNativeDriver driver;
// ...
protected AndroidNativeDriver getDriver() { AdbConnection adbc = new AdbConnectionBuilder() .withAdbPath(ADB_PATH) .build(); return new AndroidNativeDriverBuilder() .withDefaultServer() .withAdbConnection(adbc) .build(); }
// ...
driver = getDriver();
// ...
// スクリーンショットを撮る
byte[] ss = driver.getScreenshotAs(OutputType.BYTES);
FileOutputStream fos;
try {
fos = new FileOutputStream(PNG_PATH);
fos.write(ss);
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
// ... ||<