使用 App 的時候,我們經(jīng)常會用到左右上下滑動。
比如向上滑動,查看更多內(nèi)容;向下滑動刷新;左右滑動翻頁等。
這里就需要用到屏幕滑動功能 swipe() 方法。
swipe() 實現(xiàn)從 A 點到 B 點的滑動,也就是需要確定兩個坐標(biāo)點。
swipe(start_x, start_y, end_x, end_y, duration=None)
swipe() 方法的參數(shù)如下:
- start_x:起始點的x軸坐標(biāo);
- start_y:起始點的y軸坐標(biāo);
- end_x:結(jié)束點的x軸坐標(biāo);
- end_y:結(jié)束點的y軸坐標(biāo);
- duration:滑動的延遲時間,在滑動前會稍作等待,也就是實現(xiàn)緩慢的滑動,默認(rèn)值為None,可以設(shè)置具體的時間,單位為毫秒。
注意,向上滑動的時候,延遲時間會影響刷新的數(shù)量,緩慢滑動只會更新大致一屏的數(shù)據(jù),而快速滑動就可能翻很多屏的數(shù)據(jù)。使用時可以嘗試一下。
比如想實現(xiàn)向上滑動,查看屏幕下方的更多內(nèi)容。此時 x 軸不變, y 軸從大變小。(以現(xiàn)在常見的分辨率1080 * 1920為例)
driver.swipe(500, 1800, 500, 200, 300)
從坐標(biāo) (500, 1800) 滑動到 (500, 200) 的位置,也就是從最下面屏幕中間的位置滑動到屏幕頂部,實現(xiàn)向下翻頁。

當(dāng)然直接指定坐標(biāo)點,如果分辨率變化,那么將會滑動失敗。我們可以通過driver.get_window_size()方法獲取屏幕的分辨率,然后使用百分比的方式來實現(xiàn)滑動。
# 從右往左滑動,相當(dāng)于向左翻頁
start_x = int(size['width'] * 0.9)
start_y = int(size['height'] * 0.5)
end_x = int(size['width'] * 0.1)
end_y = start_y # 左右滑動,y 不變
driver.swipe(start_x, start_y, end_x, end_y)
# 從左往右滑動,相當(dāng)于向左翻頁
start_x = int(size['width'] * 0.1)
start_y = int(size['height'] * 0.5)
end_x = int(size['width'] * 0.9)
end_y = start_y
driver.swipe(start_x, start_y, end_x, end_y)
# 從下往上滑動,相當(dāng)于向上翻頁
start_x = int(size['width'] * 0.5)
start_y = int(size['height'] * 0.8)
end_x = start_x
end_y = int(size['height'] * 0.2)
driver.swipe(start_x, start_y, end_x, end_y)
# 從下往上滑動,相當(dāng)于向上翻頁
start_x = int(size['width'] * 0.5)
start_y = int(size['height'] * 0.2)
end_x = start_x
end_y = int(size['height'] * 0.8)
driver.swipe(start_x, start_y, end_x, end_y)
嘗試:
可以試試把滑動封裝成一個函數(shù),傳入'u','d','l','r',分別實現(xiàn)上下左右滑動。swipe('r') # 向右滑動,實現(xiàn)向左邊翻頁