微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Selenium+java设置元素等待

1.为什么要设置元素等待?

  • 由于网络速度原因
  • 电脑配置原因
  • 服务器处理请求原因

2.强制等待

Thread.sleep(1000);//等待一秒中

3.显式等待

   在WebDriver中把显式等待的相关方法封装在webdriverwait类中

webdriverwait wait = new webdriverwait(driver,10);
wait.until(ExpectedConditions.presenceOfElementLocated(by)); // 每隔一段时间看下是否找到指定元素,如果找到了,则执行下一步操作,否则继续等待,知道超过设置的最长时间10秒,然后抛出TimeOutException

常用方法
elementToBeSelected(WebElement element)//页面元素处于被选中的状态
elementToBeClickable(By locator)//页面元素是否在页面上可用和可被点击
presenceOfElementLocated(By locator)//页面元素在页面上是否存在
textToBePresentInElement(By locator)//页面元素是否包含特定文本
使用方法如:
webdriverwait wait = new webdriverwait(driver,10,1);//最大等待时间为10秒,每1秒检测一次,不设置认是0.5秒
wait.until(ExpectedConditions.presenceOfElementLocated(by)); //要到某个元素出现或者可被点击

 

4.隐式等待

   如果某一元素定位失败,那么就会触发隐式等待有效时长,如果在指定时长内加载完毕,则继续执行,否则抛出NoSuchElementException异常

   如果元素在第一次就定位到,则不会触发隐式等待时长,在实际工作中,一般都使用隐式等待。

driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);// 隐式等待时长为20秒
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);// 关闭隐式等待时长

5.显式等待与隐式等待的区别

1.显式等待方法等装在webdriverwait类中,隐式等待则直接通过浏览器实例化对象调用

2.显式等待对单个元素有效,隐式等待为全局等待

3.显式等待就是有条件的等待

4.隐式等待就是无条件的等待

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐