屏幕頁面滑動在APP自動化測試中屬於一個比較常見也比較特殊的操作。
通過查看swipe()方法的源碼可以知道它一共有5個參數,分別為:
- start_x:起點橫坐標
- start_y:起點縱坐標
- end_x:終點橫坐標
- end_y:終點縱坐標
- duration:滑動時間,單位毫秒
並且可以發現,它的本質其實是一個鏈式調用,從起點位置滑到終點位置,滑動時間為duration。
既然我們要使用,那肯定要給它傳遞坐標的參數, 那么起點坐標和終點坐標的位置怎么獲得呢?
我們可以通過屏幕尺寸計算得到合適的坐標位置,
先獲取屏幕的寬和高:
width = driver.get_window_size()['width'] # 寬 height = driver.get_window_size()['height'] # 高
然后設計一個比較合適的起點和終點坐標,假設從屏幕一半高度的位置,距離屏幕右側1/8處滑到距離屏幕左側1/8處,滑動的整個過程耗時0.5秒,接下來計算出坐標:
start_x = width * 7 / 8 start_y = width / 2 end_x = width / 8 end_y = width / 2 duration = 500
最后就可以調用swipe()方法滑動屏幕了:
在做這一步之前,需要明白的是,屏幕滑動操作並不針對於某一個具體的元素,而是通過驅動調用的,所以代碼如下:
driver.swipe(start_x, start_y, end_x, end_y, duration)