【问题标题】:Not able to start activity using appium无法使用 appium 开始活动
【发布时间】:2021-09-19 03:03:16
【问题描述】:

我正在尝试使用 appium android 驱动程序启动一个透明的活动,并传递一些可选的意图参数。它总是以 500 状态失败,并且无论我设置多少 abdExecTimeout 能力值,命令都会超时。

示例代码:

DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("automationName", "UiAutomator2");
capabilities.setCapability("app", "/path/to/app.apk");
capabilities.setCapability("appActivity", "com.myapp.home.splash.SplashActivity");
capabilities.setCapability("appPackage", "com.myapp.app");
capabilities.setCapability("udid","e76dcaaqs");
capabilities.setCapability("avdLaunchTimeout", 300000);
capabilities.setCapability("useKeystore", false);
capabilities.setCapability("autoGrantPermissions",true);
capabilities.setCapability("automationName", "UiAutomator2");
capabilities.setCapability("skipUnlock", true);
capabilities.setCapability("androidInstallTimeout", 180000);
capabilities.setCapability("adbExecTimeout", 60000);
capabilities.setCapability("ignoreHiddenApiPolicyError", true);
capabilities.setCapability("deviceName", "Oppo Reno");
capabilities.setCapability("appWaitForLaunch", false);
AndroidDriver<MobileElement> driver = new AndroidDriver<>(new URL("http://localhost:4723/wd/hub"), capabilities);
Activity activity = new Activity("com.myapp.app", "com.myapp.instrumentation.persistence.preferences.PreferencesOverrideActivity");
String intentParam = "--es \"overrideData\" '[{\"pref_name\": \"MyPref\",\"overrides\": " +
        "[{\"key\": \"mykey\",\"value\": \"" + obj.getValue() + "\",\"type\": \"string\"}],\"clear\": false}]'";
activity.setOptionalIntentArguments(intentParam);
//            activity.setStopApp(true);
try {
    Thread.sleep(5000);
} catch (InterruptedException e) {
    e.printStackTrace();
}
driver.startActivity(activity);
driver.launchApp();

} catch (OperationFailedException | MalformedURLException e) {
e.printStackTrace();
}

输出日志

[W3C (146a80b7)] 使用 args 调用 AppiumDriver.startActivity(): ["com.myapp.app","com.myapp.instrumentation.persistence.preferences.PreferencesOverrideActivity","com.myapp.app","com.myapp.home.splash.SplashActivity","",""," ","--es "overrideData" '[{"pref_name": "MyPreferences","overrides": [{"key": "myKey","value": "myValue"","type": "string"}],"clear": false}]' [AndroidDriver] 启动包 'com.myapp.app' 和活动 'com.myapp.instrumentation.persistence.preferences.PreferencesOverrideActivity' [ADB] 运行'/Users/user1/Library/Android/sdk/platform-tools/adb -P 5037 -s e15adapa shell am start -W -n com.myapp.app/com.myapp.instrumentation.persistence.preferences.PreferencesOverrideActivity -S --es '"overrideData"' "'[{"pref_name": "MyPreferences","overrides": [{"key": "myKey","value": "myValue","type": "string"}],"clear": false}]'"' [仪器] INSTRUMENTATION_RESULT: shortMsg=进程崩溃。 [仪器] INSTRUMENTATION_CODE:0 [仪器] 进程已退出,代码为 0

奇怪的是,即使进程崩溃,偏好数据也会更新。

【问题讨论】:

    标签: java appium appium-android


    【解决方案1】:

    找出原因。默认情况下,Appium 在调用 startActivity 时将 -W 添加到 adb 命令中,等待活动启动。就我而言,这是一项透明的活动,不会启动。所以最终 appium 命令超时并失败。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-12
      • 2023-04-03
      • 2015-12-21
      • 1970-01-01
      • 1970-01-01
      • 2013-05-06
      • 1970-01-01
      相关资源
      最近更新 更多