selenium+java 三大等待(显式,隐式,强制)

本文介绍了selenium+java在自动化测试中常用的三种等待方式:强制等待、隐式等待和显式等待。强制等待通过Thread.sleep()函数实现,无论页面是否加载完成都会等待指定时间。隐式等待设定最大等待时间,在此时间内若页面加载完成则继续执行。显式等待更加智能,会持续检查某个元素是否出现,一旦满足条件即执行下一步,提高测试效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有时候我们做自动化测试,需要等待。因为我们的下一步执行依赖于上一步的执行结果,因为程序执行的是很快的,上一步执行完毕马上执行下一步,有时候上一步的结果还没加载出来,下一步就执行了,这样就会造成错误,比如No suchElement Exception有时候就是因为这样造成的。selenium里面有三种等待方式,分别是显式,隐式,强制

1.强制等待
先讲强制等待,大家应该都不会陌生,sleep就是强制等待。
Thread.sleep();
强制让浏览器等待X秒,期间不做任何的判断操作,不管当前操作是否完成,是否可以进行下一步操作,都必须等X秒的时间。

2.隐式等待
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
在X时间内,页面加载完成,进行下一步操作。
其设置了一个最长等待时间,如果在规定时间内网页加载完成,则执行下一步,否则一直等到时间结束,然后执行下一步操作。

3.显式等待

   WebDriverWait wait=new WebDriverWait(driver,5,0.5);
   wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("x")));

其中x是你需要进行下一步操作的元素。
显式等待的意思,就是判断这个元素是否加载完成,如果在规定的时间加载完成就进行下一步操作,如果在规定的时间没有加载完成就抛出异常。
解释一下刚刚两行代码。

          WebDriverWait wait=new WebDriverWait(driver,5,0.5);
          //程序一共等待5s,每0.5秒检查一次元素是否加载完成,其实后面的0.5可以
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值