2011-09-14
■ Native Driver という Google製のテストフレームワークの Android 版がかなり、良いので使って見ました。
http://code.google.com/p/nativedriver/
基本、サンプルどうりにやると動くのですが selenium というものをベースにしているので、リファレンスをあちこち
見回らないといけないので、使いそうなところをまとめてみました。
- AndroidNativeDriver
- public メソッド
- List<AndroidNativeElement> findAndroidNativeElements(By by)
- AndroidNativeElement findElement(By by)
- WebElement findElementByPartialText(String using) // 指定した部分文字列を text に持っているエレメントを得る
- WebElement findElementByText(String using) // 指定した文字列を text に持っているエレメントを得る
- List<WebElement> findElementsByPartialText(String using) // 指定した部分文字列を text に持っているエレメントのリストを得る
- List<WebElement> findElementsByText(String using) // 指定した文字列を text に持っているエレメントのリストを得る
- AdbConnection getAdbConnection()
- ScreenOrientation getOrientation() // スクリーンの向きを得る
- <X> X getScreenshotAs(OutputType<X> target) throws AdbException // スクリーンショットを撮る
- Keyboard getKeyboard() // キーボードインターフェースを取得する
- AndroidNativeNavigation navigate() // 操縦するための AndroidNativeNavigation オブジェクトを取得する。
- void rotate(ScreenOrientation orientation) // 画面を回転する
- void startActivity(String activityClass) // 指定したクラス名のアクティビティーを起動する
- public メソッド
- AndroidNativeNavigation
- public メソッド
- void toActivity(String activityClass) // 指定したクラス名のアクティビティーを起動する
- void back()
- void forward()
- void to(String url) // 指定した URL を開く
- void to(URL url) // 指定した URL を開く
- void refresh()
- public メソッド
- 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) // このエレメント上でキュー入力をシミュレートして値をセットする
- public メソッド
- Keyboard (org.openqa.selenium.Keyboard) インターフェース
- public メソッド
- void pressKey(Keys keyToPress)
- void releaseKey(Keys keyToRelease)
- void sendKeys(CharSequence... keysToSend)
- public メソッド
- 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<T> (org.openqa.selenium.OutputType) インタフェース
- static フィールド
- OutputType<String> BASE64
- OutputType<byte[]> BYTES
- OutputType<File> FILE
- static フィールド
なお、スクリーンショットを撮るには、 AndroidNativeDriver オブジェクトを作るときに AdbConnection を渡す必要がありました。
// .... 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(); } // ...
トラックバック - http://d.hatena.ne.jp/OkadaHiroshi/20110914/1316005950


