Appium多点触控-MultiAction对页面进行放大或缩小

在网页中我们经常使用缩放操作来便利的查看具体的信息,在appium中使用MultiAction多点触控的类来实现

MultiAction是多点触控的类,可以模拟用户多点操作。主要包含加载add()和执行perform()两个方法. MultiAction一般和TouchAction结合使用,故需要导入以下模块:

from appium.webdriver.conmmon. touch_action import TouchAction

from appium.webdriver.conmmon. multi_action import MultiAction

使用方法如下:

加载:add()

add(action1,action2,…)将touchaction的对象添加到MultiAction中

action1,action2描述一个手指要执行的动作

例如:

action1=TouchAction(driver)

Action1.press(x,y)wait(1000).move_to(x1,y1).release()

MultiAction(driver).add(action1)

执行:perform()

perform()执行存储在对象中的操作,结合add()使用,

例如:

action1=TouchAction(driver)

Action1.press(x,y)wait(1000).move_to(x1,y1).release()

MultiAction(driver).add(action1)

MultiAction(driver).perform()

 

完整案例:

以地图为例

放大(Zoom):则手指分别从B>A,C>D同时向外移动放大页面

缩小(pinch):则手指分别从A>B,D>C同时向中间移动缩小页面

#初始化

from appium import webdriver

from appium.webdriver.common.touch_action import TouchAction

from appium.webdriver.common.multi_action import MultiAction

x=driver.get_size()[‘width’]

y=driver.get_size()[‘height’]

#定义放大函数

def Zoom():

action1=TouchAction(driver) #第一个手势

action2=TouchAction(driver) #第二个手势

zoom_action=MultiAction(driver) #放大手势

action1.press(x*0.4,y*0.4).wait(1000).move_to(x*0.2,y*0.2).release()

action2.press(x*0.6,y*0.6).wait(1000).move_to(x*0.8,y*0.8).release()

zoom _action.add(action1,action2)   #加载

zoom _action.perform()  #执行

 

def Pinch(): #定义缩小函数

action1=TouchAction(driver) #第一个手势

action2=TouchAction(driver) #第二个手势

pinch _action=MultiAction(driver) #放大手势

action1.press(x*0.2,y*0.2).wait(1000).move_to(x*0.4,y*0.4).release()

action2.press(x*0.8,y*0.8).wait(1000).move_to(x*0.6,y*0.6).release()

pinch _action.add(action1,action2)   #加载

pinch _action.perform()  #执行

 

#主函数调用子函数

#__name=’__main__’表示执行当前py文件;否则当前文件属于调用模块

 

if __name__=’__main__’: 

for i int range(3): #执行缩小函数3次,range(3)代表执行0,1,2共3次

           Pinch()

猜你喜欢

转载自blog.csdn.net/Teamo_mc/article/details/81660276