Appium如何判斷滑動到了頁面底部(Python)

需求:在做appium自動化的過程中遇到一個問題,每次下滑都會刷新頁面(比如微信朋友圈),要通過滑動獲取所有頁面信息,直到滑動到頁面底部,但是不知道怎麼判斷滑動到底部從而終止滑動的循環(appium無法得知滑動成功還是失敗)

appium本身沒有直接判斷是否滑動到頁面底部的函數,但是我們可以通過一個比較笨的方法來實現滑動到頁面底部的判斷,思路也比較簡單:判斷滑動前後的頁面元素是否完全一致,如果完全一致則說明滑動失敗(已經滑動到了底部),如果不一致則說明滑動成功。示例代碼如下:

# 獲取滑動前頁面元素
before_swipe = driver.page_source
# 滑動
driver.swipe(300, 1000, 300, 300) 
# 獲取滑動後頁面元素
after_swipe = driver.page_source
# 對比滑動前後的頁面元素
# 若滑動前後頁面元素完全相同,則滑動失敗,已達頁尾
if before_swipe == after_swipe:
    Swiped = False
# 若滑動前後頁面元素不同,則滑動成功,繼續滑動
else:
   Swiped = True

我們用driver.page_source來獲取頁面元素,用變量Swiped來標記是否滑動成功(此變量可用作while循環的判斷條件)


參考

  1. 思路來源於stackoverflow:How to Swipe and Scroll to the Last in Appium
  2. Java同需求代碼參考:appium滑動到元素或滑動到頁面底部
  3. Appium Appium Python API 中文版 By-HZJ
  4. 注意:java和python的獲取頁面元素的方式不同,java是通過方法driver.getPageSource(),而python是通過獲取屬性值driver.page_source
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章