Appium獲取手機分辨率 & 自適應設備下滑刷新

需求背景:appium做手機自動化的時候,有個很固定的需求就是豎直滑動刷新頁面信息(比如:微信朋友圈、微博等),開始的時候我是固定寫死的,如driver.swipe(300, 1000, 300, 300),但是這樣寫的弊端也很明顯,代碼不夠健壯,如果遇到小屏設備或者大屏設備,滑動的幅度看起來就可能過大或過小。所以我們需要根據不同分辨率的設備做自適應,使代碼在各種大小的屏幕上表現的行爲和體驗都比較一致。

首先,我們需要獲取屏幕的寬和高,Appium(python)可用get_window_size()方法獲取屏幕的寬和高(可用鍵值索引單獨獲取寬或高),然後按照屏幕尺寸定義滑動幅度佔屏比。因爲下滑刷新是比較常用的功能,所以我封裝爲一個函數,方便調用,代碼如下:

def scroll_down(self):
    width = self.get_window_size()['width']
    height = self.get_window_size()['height']
    x = width / 2
    starty = height * 0.75
    endy = height * 0.20
    self.swipe(x, starty, x, endy, 500)

調用方式爲scroll_down(driver),傳入自己的Appium WebDriver對象即可;

下滑幅度(通過修改示例代碼中的0.75和0.20來實現)和滑動時間也可以根據自己的需求修改,如果要讓該函數更加通用和健壯,也可以將這些定製化的參數提取到函數的入參。


參考

  1. Appium官方API:Get Window Size
  2. Appium Webdriver 的 swipe 方法
  3. Appium Appium Python API 中文版 By-HZJ
  4. 代碼參考於stackoverflow中Gaurav的回答:How to Swipe and Scroll to the Last in Appium
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章