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