App 自動化測試 滑動操作

使用 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)向左邊翻頁
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容