Appium頁面滑動問題
阿新 • • 發佈:2019-02-15
我們在自動化測試的過程中會遇到通過頁面滑動的操作,或者通過滑動來選擇某個值,下面通過三種方法來實現,主要以向上滑動為例子進行講解。
1.swipe()用法
swipe(int start x,int start y,int end x,int end y,duration)
解釋:int start x-開始滑動的x座標,
int start y -開始滑動的y座標。
int end x -結束點x座標,
int end y -結束點y座標。
duration 滑動時間(預設5毫秒)
準備工作:
1. 開啟UI Automator Viewer,獲取你要滑動的介面
2. 手機設定-開發者選項-顯示指標位置,這樣滑動的時候能看到座標以及滑動的線條
如下圖,我有實現滑動修改性別,當前性別為女,我要向上滑動,修改為男,可滑動的區域為圖中標識的座標[0,1874][1440,2560]
#swipe()方法實現程式碼
#起始和結束的橫座標為720,縱座標從2500滑到1900,實現垂直上滑
self.driver.swipe(720, 2500, 720, 1900)
2.touch_action方法
使用TouchAction裡的方法,從某點滑到某點,然後放開
from appium.webdriver.common.touch_action import TouchAction
#實現滑動的另一種方法
#move_to裡的座標是相對於前一個座標的偏移量 TouchAction(self.driver).press(x=720,y=2500).move_to(x=0,y=-600).release().perform()
3.不同的手機解析度不同,所以一個座標如果用另一個解析度不同的手機可能位置就有所變化了,為了讓apppium 更好的相容不同解析度的裝置,在執行滑動前先獲取螢幕的解析度。
width=self.driver.get_window_size()['width']
height=self.driver.get_window_size()['height']
self.driver.swipe(width/2,height*7/8,width/2,height*6/8,1000)