需求:在做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循环的判断条件)
参考
注意:java和python的获取页面元素的方式不同,java是通过方法driver.getPageSource(),而python是通过获取属性值driver.page_source