背景:
首先,由于一个网速和手机性能以及服务器反应时间等等的原因,不可能导致我们点击了某一个元素之后,它所要链接的页面马上弹出来可以进行下一步操作。所以我们需要一种等待方式,直至链接的页面跳出来之后再进行下一步操作。
解决方法:
appium中的操作方式有3种,接下来我将介绍一下较简单的2中等待的使用方法:
第一种(强制等待):
使用方法:time.sleep(10)
解释:强制等待的方式,不管你的下一个页面是否展示出来,系统将强制等待10秒,10秒之后继续执行下一步。如果这10s中下一页展示出来了将继续进行下面的步骤;如果下一页没有展示出来则系统将报错误(下一页要执行操作的元素没有找见)。
具体使用:
在两个操作之间加上该强制等待的语句,等待时间根据情况自行决定。
第二种(隐式等待):
使用方法:self.dr.implicitly_wait(5)
解释:全局等待的方式,如果找不到控件,会在5秒以内一直重复寻找,找到后不管是否到5秒,继续下一步。如果5秒后还是未找到则系统将报错误(下一页要执行操作的元素没有找见)。
具体使用:
在两个操作之间加上该强制等待的语句,等待时间根据情况自行决定。
易出错点:如果当前同一个页面存在一个和下一个页面要执行的元素特性相同的元素,则很有可能在当前页面执行下去,会导致后续出错。
本人比较建议两者混合使用,能节省不少跑case的时间。