Appium元素等待(1)
在自动化过程中,受网络环境、设备性能等等原因影响,元素加载成功展示的时间可能不一致,从而导致元素定位超时未成功定位到而报错,但是实际上元素是正常的,只是加载时间不一致而已。
元素等待有三种:强制等待、隐式等待、显示等待
强制等待:
使用方法sleep
语法:
步骤1:导入方法
步骤2:输入等待时长,默认以秒为单位
隐式等待:
针对所有元素来设置等待的时间,直接引用implicitly()即可
语法:直接输入脚本driver.implicitly(5) #数字是等到超时时间,默认以秒为单位
显示等待:
针对某个元素来设置等待的时间、
语法:
步骤1:导入webdriver模块
步骤2:输入等待时长,默认以 秒为单位
详细格式:
WebDriverWait(driver, timeout, poll_frequency=0.5, ignored_exceptions=None)
说明:
- driver - WebDriver 的驱动程序(Ie, Firefox, Chrome 或远程)
- timeout - 最长超时时间,默认以秒为单位
- poll_frequency - 休眠时间的间隔(步长)时间,默认为 0.5 秒
- ignored_exceptions - 超时后的异常信息,默认情况下抛 NoSuchElementException 异常。
其他:
WebDriverWai()一般由 until()或 until_not()方法配合使用,下面是 until()和 until_not()方法的说明。
until(method, message=’’)
调用该方法提供的驱动程序作为一个参数,直到返回值不为 False。
until_not(method, message=’’)
调用该方法提供的驱动程序作为一个参数,直到返回值为 False。
lambda
lambda 提供了一个运行时动态创建函数的方法。
示例:
Lambda函数简要说明:
Lambda函数是匿名的,所谓匿名函数,通俗的说是没有名字的函数
冒号左侧是参数,多个参数则使用逗号隔开
冒号右侧是返回值
例如:
Lambda x,y:x*y 函数的输入是X,Y;输出是x*y