目錄
KeyWords
Appium,多個appActivity,Android,app自動化,UI自動化,跨應用app自動化
適用場景
一:在一個 @Test 中需要用到多個app package,此時需要手動切換app;
二:同一個package中有多個service,例如測試環境下的package,爲了方便QA測試,會在同一個package中包含一個專門的admin工具,並且和主app是以兩個不同的圖標存在的,但是package name相同,在自動化測試過程中需要切換兩個package。
Appium提供的方法
//方法名稱
driver.startActivity();
Appium源碼
/**
* This method should start arbitrary activity during a test. If the activity belongs to
* another application, that application is started and the activity is opened.
* <p>
* Usage:
* </p>
* <pre>
* {@code
* Activity activity = new Activity("app package goes here", "app activity goes here");
* activity.setWaitAppPackage("app wait package goes here");
* activity.setWaitAppActivity("app wait activity goes here");
* driver.startActivity(activity);
* }
* </pre>
*
* @param activity The {@link Activity} object
*/
default void startActivity(Activity activity) {
CommandExecutionHelper.execute(this,
startActivityCommand(activity.getAppPackage(), activity.getAppActivity(),
activity.getAppWaitPackage(), activity.getAppWaitActivity(),
activity.getIntentAction(), activity.getIntentCategory(), activity.getIntentFlags(),
activity.getOptionalIntentArguments(), activity.isStopApp()));
}
這個註釋真的寫的是十分用心了,具體的使用方法和參數格式看註釋就好~
使用示例
關於如何獲取appActivity,可參考獲取adnroid appActivity的四種常用方法
//此方法爲andoird獨有方法,需要聲明driver的類型爲AndroidDriver
((AndroidDriver) driver).startActivity(new Activity("com.your.packagename", ".app.activity.LauncherActivity"));