解决方案
配置如下属性
capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, AutomationName.ANDROID_UIAUTOMATOR2);
方案说明
Appium启动时,需要在DesiredCapabilities中配置属性。其中有个属性叫MobileCapabilityType.AUTOMATION_NAME,该属性用于配置自动化引擎,源码中对于该属性介绍如下:
/**
* Which automation engine to use.
*/
String AUTOMATION_NAME = "automationName";
该属性有如下选择:
String APPIUM = "Appium";
String SELENDROID = "Selendroid";
String IOS_XCUI_TEST = "XCuiTest";
String ANDROID_UIAUTOMATOR2 = "UIAutomator2";
String YOUI_ENGINE = "youiengine";
String ESPRESSO = "Espresso";
除非手动配置,否则系统默认使用Appium。Appium使用的是UIAutomator1,UIAutomator2修复了UIAutomator1的部分bug。
对于Android7.0以上的系统,UIAutomator1查找控件出现超时导致Appium服务端报错,此时可尝试使用UIAutomator2。