https://blog.csdn.net/zhangzhan0813/article/details/139813554

csdn推荐

在前面的文章中重点介绍了一些元素的定位方法,定位到元素后,就需要操作元素了。本篇通过简单案例来介绍app应用中的一些常用操作。

一、案例介绍

下面列表中有四个字典,每个字典中的num1代表第一个操作数,num2代表第二个操作数,op代表操作符。

现要求用代码读取这个列表中的字典,在计算机apk中自动化完成对应的运算操作,并通过读取计算器的结果框中显示的数字,打印运算结果。

dict_data = [
    {'num1': 78, 'num2': 98, 'op': '+'},
    {'num1': 56, 'num2': 34, 'op': '-'},
    {'num1': 34, 'num2': 2, 'op': '*'},
    {'num1': 123, 'num2': 89, 'op': '/'}
]

二、代码实现

from appium import webdriver
import time
dict_data = [
    {'num1': 78, 'num2': 98, 'op': '+'},
    {'num1': 56, 'num2': 34, 'op': '-'},
    {'num1': 34, 'num2': 2, 'op': '*'},
    {'num1': 123, 'num2': 89, 'op': '/'}
]
digit_data = {
    '0': 'zero',
    '1': 'one',
    '2': 'two',
    '3': 'three',
    '4': 'four',
    '5': 'five',
    '6': 'six',
    '7': 'seven',
    '8': 'eight',
    '9': 'nine'
}
op_data = {
    '+': 'plus',
    '-': 'minus',
    '*': 'multiply',
    '/': 'divide'
}
# 设置启动参数
desired_cap = {}
desired_cap['platformName'] = 'Android'
desired_cap['platformVersion'] = '6.0.1'
desired_cap['deviceName'] = '127.0.0.1:7555'
# 必须参数,指定被测软件的包名
desired_cap['appPackage'] = 'com.differ.xiaoming'
# 必须参数,指定要打开app的哪个页面
desired_cap['appActivity'] = 'com.differ.xiaoming.activity.CalcActivity'
desired_cap['automationName']='Uiautomator2'
desired_cap['noReset'] = True
desired_cap['newCommandTimeout'] = 6000
desired_cap['unicodeKeyboard'] = True
desired_cap['resetKeyboard'] = True
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_cap)
time.sleep(5)
def get_res(num1, num2, op):
    # 1.解析第一个操作数
    for letter in num1:
        driver.find_element('id', 'com.differ.xiaoming:id/btn_{}'.format(digit_data[letter])).click()
    # 2.解析操作符
    driver.find_element('id', 'com.differ.xiaoming:id/btn_{}'.format(op_data[op])).click()
    # 3.解析第二个操作数
    for letter in num2:
        driver.find_element('id', 'com.differ.xiaoming:id/btn_{}'.format(digit_data[letter])).click()
    # 4.点击等于符号
    driver.find_element('id', 'com.differ.xiaoming:id/btn_equal').click()
    # 5.定位结果框,并对结果进行打印
    res = driver.find_element('id', 'com.differ.xiaoming:id/et_show').text
    print('{}{}{}={}'.format(num1, op, num2, res))
for data in dict_data:
    get_res(str(data['num1']), str(data['num2']), data['op'])

文章来源:https://blog.csdn.net/zhangzhan0813/article/details/139813554



微信扫描下方的二维码阅读本文

© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容