前言
MultiAction是针对多点触控操作的,是TouchAction的一个补充模块
TouchAction用法参考前面的一篇:appium+python自动化33-TouchAction
多点触控
- 多点触摸对象是触摸动作的集合。
- 多点触控手势只有两种方法,即添加和执行。
- add用于添加另一个触摸操作到多点触摸。
- 当perform执行被调用时,添加到多点触摸的所有触摸动作都被发送到AppII,并执行,就像它们同时发生一样。appium首先执行所有触摸动作的第一个事件,然后执行第二个,等等。
MultiAction源码
class MultiAction(object):
def __init__(self, driver, element=None):
self._driver = driver
self._element = element
self._touch_actions = []
def add(self, *touch_actions):
"""添加TouchAction事件
:Args:
- touch_actions - one or more TouchAction objects describing a chain of actions to be performed by one finger
:Usage:
a1 = TouchAction(driver)
a1.press(el1).move_to(el2).release()
a2 = TouchAction(driver)
a2.press(el2).move_to(el1).release()
MultiAction(driver).add(a1, a2)
"""
def perform(self):
"""Perform the actions stored in the object.
:Usage:
a1 = TouchAction(driver)
a1.press(el1).move_to(el2).release()
a2 = TouchAction(driver)
a2.press(el2).move_to(el1).release()
MultiAction(driver).add(a1, a2).perform()
"""
参考代码
from appium.webdriver.common.touch_action import TouchAction
from appium.webdriver.common.multi_action import MultiAction
# el是定位元素的对象
action0 = TouchAction().tap(el)
action1 = TouchAction().tap(el)
MultiAction().add(action0).add(action1).perform()