计算若干组算式
from appium import webdriver
settings_dict = {}
settings_dict['platformName'] = 'Android' # 必须参数,定义被测脚本,不区分大小写, 必须是android
settings_dict['platformVersion'] = '6.0.1' # 设置被测手机的android版本号
settings_dict['deviceName'] = '127.0.0.1:7555' # 可以写任意值,但不能为空
settings_dict['appPackage'] = 'com.miui.calculator' # 必须参数,指定被测软件的包名
settings_dict['appActivity'] = '.cal.CalculatorActivity' # 指定打开的app的页面是哪个
settings_dict['automationName'] = 'Uiautomator2' # 不是必须, 但一般需要指定
settings_dict['noReset'] = True # 不停止应用, 不清空数据,不卸载apk False 会清除应用数据 但不会卸载apk
settings_dict['newCommandTimeout'] = 6000
# 设置中文输入
settings_dict['unicodeKeyboard'] = True
settings_dict['resetKeyboard'] = True
driver = webdriver.Remote('http://localhost:4723/wd/hub', settings_dict)
dicts = [
{'num1': 12, 'num2': 45, 'op': '+'},
{'num1': 12, 'num2': 45, 'op': '-'},
{'num1': 12, 'num2': 45, 'op': '*'},
{'num1': 12, 'num2': 45, 'op': '/'},
]
ops = {
'+': 'plus',
'-': 'minus',
'*': 'mul',
'/': 'div',
}
for dic in enumerate(dicts):
for d in str(dic[1]['num1']):
driver.find_element('id', f'com.miui.calculator:id/btn_{d}_s').click()
driver.find_element('id', f'com.miui.calculator:id/btn_{ops[dic[1]["op"]]}_s').click()
for d in str(dic[1]['num2']):
driver.find_element('id', f'com.miui.calculator:id/btn_{d}_s').click()
driver.find_element('id', 'com.miui.calculator:id/btn_equal_s').click()
print(driver.find_element('xpath', f'//android.widget.LinearLayout[@index={dic[0]}]/android.widget.TextView').text)
获取对应的按钮元素id,通过xpath获取最新的计算结果