desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '5.1.1'
desired_caps['deviceName'] = 'Android Emulator'
desired_caps['appPackage'] = 'com.topsec.topsap'
desired_caps['appActivity'] = 'com.topsec.topsap.main.Welcome'
# 'automationName':'Selendroid'
desired_caps['automationName'] = 'Uiautomator2'
desired_caps['noReset'] = "True"
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
像上图所示的desired_caps只能启动单个app,如果要检测类似:通过检测桌面文本来检测app退出成功的这种用例,此时就会报错查找步到元素,因为上边的desired_caps,只能在固定的app中进行元素查找,如果要检测桌面的元素,需要把桌面看作一个大的app,每一个app都是它里边的一个元素,所以需要先进入到桌面,代码如下
desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '5.1.1'
desired_caps['deviceName'] = 'Android Emulator'
desired_caps['appPackage'] = 'com.vphone.launcher'//桌面package
desired_caps['appActivity'] = '.Launcher'//桌面activity
# 'automationName':'Selendroid'
desired_caps['automationName'] = 'Uiautomator2'
desired_caps['noReset'] = "True"
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
driver.start_activity("com.topsec.topsap", "com.topsec.topsap.main.Welcome")
可以使用adb命令快速查看某应用appPackage及appActivity:
adb shell dumpsys window windows | findstr "Current"
之后就可以先定位到要启动到的app,然后启动或者使用startActivity方法启动app
或使用
adb shell dumpsys activity activities