AndroidでもSelenium2
うまくいったら万々歳ですよ
1. 環境の作成
まず必要なのが、AndroidにSeleniumServerを用意すること。事前に adbコマンド は打てるようにしておくが吉。adbの入れ方は気が向いたら(PC変えた等)書くかも。
adb -versionでも打ってコマンドが使えることを確認する。
続いてこちらから、
android-server-"ver".apk
をもらう。 例によって "ver"はバージョン。(2014/02/17 時点では 2.21.0)
貰って来たら、こいつを端末にインストールする。
コマンドを開き、
adb -s 入れたい端末ID -e install -r android-server-"ver".apk
コマンドを叩く。apkは貰ったapkの名前。 入れたい端末のID は、別途
コマンドを叩けば見られます
まずは入れたWebDriverを起動する。
実機上のアイコンをタップするか、コマンドから
続いてポートフォワード設定(というらしい)。要は接続?
コマンドから、
ここまでやって端末側の準備が完了。
ちなみにこのWebDriver、 Android標準ブラウザ でのシミュレータになる(らしい)。 Chromeブラウザとかはどうやるんだろ…
ポイントは WebDriverの宣言。通常Chromeでテストする場合、
これで動きがみられるはず。
こいつをEclipseからでも実行してやると、実機上で動きが見られ、かつテスト結果はEclipseの方に出てくる。
デザインのチェックなどは厳しいけど、機能チェック、特に登録系に対してAndroidのキーボードでいちいち入力する手間が省けると、工数がぐっと減る気がする。
問題は、「バックキー」 が使えないこと。 使うと WebDriver自体が終了します。
うん。Androidでやる意味が薄いな…('A`)
PCでええやん…
今回はChrome用。たぶん他にもあるかと
要するにオプションで設定できますよ、ってお話。UAはぐーぐる先生に聞いてみるといろいろ出てくるので、お好きなものをセットしてみましょう。
正直これでいい気がした(・ω・`)
adb devices
コマンドを叩けば見られます
入れたい端末のID deviceこんな感じで表示されるかと。
2. 準備
インストールが終わったら、今度は下準備。まずは入れたWebDriverを起動する。
実機上のアイコンをタップするか、コマンドから
adb -s 入れたい端末のID shell am start -a android.intent.action.MAIN -n org.openqa.selenium.android.app/.MainActivity -e debug trueのコマンドを起動。この辺もバッチとかにしても楽かも。これでWebDriverが起動。真っ暗な感じの表示になるはず。
続いてポートフォワード設定(というらしい)。要は接続?
コマンドから、
adb -s 入れたい端末のID forward tcp:8080 tcp:8080を入力。
ここまでやって端末側の準備が完了。
ちなみにこのWebDriver、 Android標準ブラウザ でのシミュレータになる(らしい)。 Chromeブラウザとかはどうやるんだろ…
3. テストコード用意
明らかに順番おかしい気がするけど。 JUnitが使えるので、今までのテストも使える。ポイントは WebDriverの宣言。通常Chromeでテストする場合、
WebDriver driver = new ChromeDriver();と宣言するところを、
WebDriver driver = new AndroidDriver();と宣言する。
これで動きがみられるはず。
こいつをEclipseからでも実行してやると、実機上で動きが見られ、かつテスト結果はEclipseの方に出てくる。
デザインのチェックなどは厳しいけど、機能チェック、特に登録系に対してAndroidのキーボードでいちいち入力する手間が省けると、工数がぐっと減る気がする。
問題は、「バックキー」 が使えないこと。 使うと WebDriver自体が終了します。
うん。Androidでやる意味が薄いな…('A`)
PCでええやん…
4. おまけ ~WebDriverでUA偽装
正直UA偽装でもいい気がしたので。今回はChrome用。たぶん他にもあるかと
/* クローム用オプション。 UA偽装しないと見れない時に */ ChromeOptions options = new ChromeOptions(); /* UA偽装 to iPhone */ options.addArguments("--user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5376e Safari/8536.25"); /* Chromeドライバのインスタンス。オプションセット版 */ driver = new ChromeDriver(options);
要するにオプションで設定できますよ、ってお話。UAはぐーぐる先生に聞いてみるといろいろ出てくるので、お好きなものをセットしてみましょう。
正直これでいい気がした(・ω・`)
0 件のコメント:
コメントを投稿