AD

2024-11-11

Appium Android 起手式 - 取得 appPackage 和 appActivity

在使用 Appium 進行 Android 自動化測試時,appPackage 和 appActivity 是必要的參數。

取得方式很多,記錄一下我習慣用的方法:
adb shell dumpsys window | grep -E "mCurrentFocus"
確定已經連到了 Android 裝置,並開啟 app,輸入上面的指令。

回傳的結果會是目前開啟的 app 和 app 頁面,如:appPackage/appActivity 的格式的資訊。

實際例子,開啟 Chrome app 之後: mCurrentFocus=Window{1c35821 u0 com.android.chrome/com.google.android.apps.chrome.Main} appPackage 是 com.android.chrome,appActivity 是 com.google.android.apps.chrome.Main。
-
要注意的是,appActivity 是能進 app 的第一個畫面,有些 app 開啟時可能閃現一下就跳到下一個畫面。沒有找到正確的可能會有類似以下的錯誤:
exited with code 255'; Command output: Exception occurred while executing 'start': java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000
這種時候可以拼手速,在一開啟載入閃現那個第一個畫面就趕快 enter 指令,但也可以用 Android Studio 或其他編輯器打開 apk 檔的 AndroidMainfest.xml,找到含有 android.intent.action.MAIN 的 Activity。
實際例子,有個 Activity 有這樣的內容 :
<activity
    android:name="com.example.app.loading.LoadingActivity"
    android:exported="true"
    android:screenOrientation="1"
    android:hardwareAccelerated="false">

    <intent-filter>
        <action
            android:name="android.intent.action.MAIN" />
        <category
            android:name="android.intent.category.LAUNCHER" />
    </intent-filter>

</activity>
那就是這個 Activity 了!

沒有留言:

張貼留言

如果文章有幫助到你可以在 LikeCoin 上幫我拍手喔