1. 程式人生 > >Appium多點觸控-MultiAction對頁面進行放大或縮小

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()