标签:ppi mamicode unicode编码 操作 拖动 params 导入 div main
我们在做app测试的时候,都会写一些长按,双击,滑动,拖动等一系列简单的操作来验证按钮或者跳转页是否正常的用例,那么我们在做自动化测试的时候这些操作应该怎么去做呢?
TouchAction是APPium中封装的一个方法,主要是都手势控制的一些操作:长按,滑动,等其他操作。
源码:
class TouchAction(object): def __init__(self, driver=None): self._driver = driver self._actions = [] def tap(self, element=None, x=None, y=None, count=1): 对元素执行点击操作 参数: -元素-要点击的元素 - x -(可选)x坐标点击,相对于左上角的元素。 - y -(可选)y坐标。如果使用y,也必须设置x,反之亦然 """ opts = self._get_opts(element, x, y) opts[‘count‘] = count self._add_action(‘tap‘, opts) return self def press(self, el=None, x=None, y=None, pressure=None): """以在特定元素或点上的下拉操作开始链 参数: - el -(可选)要按的元素 - x -(可选)x配合按。如果使用y,也必须设置x - y -(可选)y可按。如果使用x,也必须设置y -压力-(可选)[iOS只]按作为强制触摸。 """ self._add_action(‘press‘, self._get_opts(el, x, y, pressure=pressure)) return self def long_press(self, el=None, x=None, y=None, duration=1000): """长按 """ self._add_action(‘longPress‘, self._get_opts(el, x, y, duration)) return self def wait(self, ms=0): """按住元素后的等待时间 """ if ms is None: ms = 0 opts = {‘ms‘: ms} self._add_action(‘wait‘, opts) return self def move_to(self, el=None, x=None, y=None): """从这个坐标移动到另一个 """ self._add_action(‘moveTo‘, self._get_opts(el, x, y)) return self def release(self): """释放手指 """ self._add_action(‘release‘, {}) return self def perform(self): """执行动作 """ params = {‘actions‘: self._actions} self._driver.execute(Command.TOUCH_ACTION, params) # get rid of actions so the object can be reused self._actions = [] return self
这里我们先拿一个小栗子说明使用方法
class Actions(object): def __init__(self): self._actions = [] def a(self, x): self._actions.append(x) return self def b(self, y): self._actions.append(y) return self def c(self, z): self._actions.append(z) return self def perform(self): print(self._actions) if __name__ == ‘__main__‘: Actions().a("hello").c("world").b("aaa").perform() ------结果------- [‘hello‘, ‘world‘, ‘aaa‘]
其实TouchAction就是通过这个方法来执行的,我们进行一系列的操作来后,通过perform方法来执行运行
这个tap其实和前面模拟点击中写的tap是差不多,TouchAction中的tap中可以加入直接加入元素,也可以通过坐标进行定位
# coding:utf-8 from appium import webdriver # 导入TochAction模块 from appium.webdriver.common.touch_action import TouchAction import time desired_caps = { ‘platformName‘: ‘Android‘, # 测试版本 ‘deviceName‘: ‘emulator-5554‘, # 设备名 ‘platformVersion‘: ‘5.1.1‘, # 系统版本 "appPackage": "com.taobao.taobao", # app包名 "appActivity": "com.taobao.tao.welcome.Welcome", # 启动launch Activity "noReset": True, # 不清空数据 "unicodeKeyboard": True, # 使用Unicode编码方式发送字符串 "resetKeyboard": True, # 键盘隐藏起来 } driver = webdriver.Remote(‘http://127.0.0.1:4723/wd/hub‘, desired_caps) time.sleep(10) # 登录按钮 element = driver.find_element_by_class_name(‘android.widget.Button‘) # 实例化 toch = TouchAction(driver) # 执行点击 toch.tap(element=element).perform()
触摸 (tap)
短按 (press)
长按 (long_press)
等待 (wait)
移动到 (moveTo)
释放 (release)
执行 (perform)
标签:ppi mamicode unicode编码 操作 拖动 params 导入 div main
原文地址:https://www.cnblogs.com/qican/p/12589879.html