ui自动化测试中显性等待和隐性等待的区别

显性等待和隐性等待是用于解决UI自动化测试中页面加载、元素定位等问题的两种等待机制。

显性等待,需要手动编写代码指定等待时间,程序会在指定的时间内等待某个条件满足后再继续执行后续操作,一旦超时就会报错。例如,通过WebDriverWait类实现显性等待,调用方法ExpectedConditions的各种断言方法,等待页面元素的出现、可点击、可见等条件。

隐性等待,则是在代码初始化时设置一个全局等待时间,在等待时间内每隔固定时间检测一次元素是否存在或可见,如果存在或可见就立即继续执行下一步操作,否则就继续等待。例如,通过调用implicitly_wait()方法实现隐性等待。

两种等待机制的区别在于显性等待需要手动编写代码指定等待时间和条件,可以灵活调整等待时间和条件,但代码冗长;而隐性等待只需要设置全局等待时间,代码简洁,但等待时间和条件不太灵活和可控,如果全局等待时间设置太短,容易造成定位失败的问题。

相同点:

都是智能等待,在一定时间范围内不断查找元素,一旦找到立刻结束查找,继续执行代码,没找到会一直找到超时为止

不同点:

1、隐性等待是全局性设置,并且可以随时更改,在更改后对之后的find XXX方法生效,对点击、输入之类的操作不起作用

driver.implicitly_wait(20)

2、显性等待仅仅针对单一元素或一组生效,并且不仅仅是针对查找,也可以针对alert、iframe或者元素的某些属性进行自定义判断

ele = WebWait(driver, 3).until(EC.presence_of_element_located(locator=("link text", "登录")))
ele.click()

# 输入账号-显性等待
yhm_located = ("name", "accounts")
yhm_ele = WebWait(driver, 3).until(EC.presence_of_element_located(yhm_located))

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值