appiumを使用する際に必要となってくるのがadbコマンドです。
Aのアプリを操作して会員登録メールを送信、メーラーを起動してURLをクリック
など、appiumでの自動化シナリオ実装時にadbでのアプリ起動はよく使われます。
今回はいくつかのパターンの引数を使用した動作をお伝えできればと思います。
adbでのアプリ起動
adb shell am start
を基本構成としてアプリを起動するためのオプションをつけて起動します。
一番ベーシックな起動文
adb shell am start -n [アプリ名]/[アクティビティ名]
となり、例えばchromeを起動するなら
adb shell am start -n com.android.chrome/org.chromium.chrome.browser.ChromeTabbedActivity
などで起動することができます。
パッケージ名・アクティビティの特定の仕方
ではこのパッケージ名とアクティビティ名を取得するにはどうすればいいかのご紹介をします
取得したいアプリを立ち上げる
今回はchromeを立ち上げて確認してみることにします!
(実機は何起動しているか分かってしまい、ちょっと怖いのでエミュレータにしています。。。)
コマンドプロンプトにてデバッグログを抽出
コマンドプロンプトで実行する場合
Android11で実行した場合
adb shell dumpsys activity | findstr "realActivity"
を実行すると起動しているパッケージとアクティビティが表示される
今回は1つのアプリしか起動していなかったので1行しか表示していなかったですが
複数起動している場合、複数行表示されることがあります。
その場合、パッケージがわかる場合はそれをもとに特定。
もしわからない場合は一番初めにある記載をもとにすれば大丈夫です!
(念のため後述するコマンドを打って起動確認をする)
必要なアプリを特定したら先ほどのコマンドと合わせる
今回出力された値は下記となります
realActivity={com.android.chrome/org.chromium.chrome.browser.ChromeTabbedActivity}
赤がパッケージ名、青がアクティビティ名となります。
これを先ほどの起動コマンドと合わせると
adb shell am start -n com.android.chrome/org.chromium.chrome.browser.ChromeTabbedActivity
になります!
引数を変えると様々な起動方法が実現できる
ブラウザURLを指定して起動
インテント指定を応用するとURLを直開きすることができます。
adb shell am start -a android.intent.action.VIEW -d "https://www.google.co.jp"
自動化をするときに余計なコマンドを入力しなくていいので便利です!
アプリを立ち上げなおして起動
引数を大文字Sにするとアプリを再度起動してくれます。
adb shell am start -S [アプリ名]/[アクティビティ名]
このコマンドのいい点としては
- トップで自動ログイン(認証)をしないとアプリを利用できないとき
- 自動化実装するときに起動状態を気にせず初めのページから遷移させたい場合
コメント