这些权限按钮什么的都是可以定位到的,现在在appium手机画面预览中点击【同意】按钮,右边会出现元素的各种属性。
可以看到id和xpath定位等,这个操作跟selenium定位一样,优先使用id就好,没有id就使用其他定位方式。
这时候在测试机上点击【同意】按钮,测试机进入了小米计算器,此时appium的画面还没有变,因为需要点击上面的【refresh】按钮来实时获取手机的画面,然后根据需求找出各个按钮的定位就可以编写测试脚本了。
编写脚本
现在来写一个简单的脚本操作一下小米计算器,计算5×9=45是否正确:
from appium import webdriver from time import sleep # 配置信息,字典类型,直接复用上面的json就好 desired_caps = { "platformName": "Android", "platformVersion": "10", "deviceName": "OnePlus 7 pro", "app": "D:/com.miui.calculator.apk", "appPackage": "com.miui.calculator", "appActivity": "com.miui.calculator.cal.CalculatorActivity" } # 传入appium server的host+path,还有配置信息 driver = webdriver.Remote(command_executor=\'http://localhost:4723/wd/hub\', desired_capabilities=desired_caps) sleep(3) # 同意读取手机状态和身份 driver.find_element_by_id(\'android:id/button1\').click() # 同意获取电话权限 driver.find_element_by_id(\'com.android.permissioncontroller:id/permission_allow_button\').click() # 点击5 driver.find_element_by_id(\'com.miui.calculator:id/btn_5_s\').click() # 点击乘号 driver.find_element_by_id(\'com.miui.calculator:id/btn_mul_s\').click() # 点击9 driver.find_element_by_id(\'com.miui.calculator:id/btn_9_s\').click() # 点击等号 driver.find_element_by_id(\'com.miui.calculator:id/btn_equal_s\').click() # 判断结果是否等于45 result = driver.find_element_by_id(\'com.miui.calculator:id/result\').text if result == \'= 45\': print(\'正确\') else: print(\'错误\') sleep(3) # 退出测试 driver.quit()运行脚本的效果: