需求:在做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循环的判断条件)
参考
- 思路来源于stackoverflow:How to Swipe and Scroll to the Last in Appium
- Java同需求代码参考:appium滑动到元素或滑动到页面底部
- Appium Appium Python API 中文版 By-HZJ
- 注意:java和python的获取页面元素的方式不同,java是通过方法
driver.getPageSource(),而python是通过获取属性值driver.page_source
本文介绍了在使用Appium进行自动化测试时,如何通过Python判断是否已滑动到页面底部。由于Appium本身不提供直接判断方法,可以采取对比滑动前后页面元素是否一致来确定。当元素不变时,表示已滑动到底部。文中提供了相关代码示例,并指出Java和Python在获取页面元素上的区别。
754

被折叠的 条评论
为什么被折叠?



