Java Selenium中的等待和超时

这篇具有很好参考价值的文章主要介绍了Java Selenium中的等待和超时。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Selenium 中的等待命令是什么?

在执行 selenium 自动化测试时,我们使用等待来使我们的测试可靠且健壮。最常见的是,在运行自动化测试时,如果在加载 Webdriver 想要交互的特定元素时出现延迟,我们会看到“ElementNotVisibleException”。

等待和超时可帮助用户在执行某些操作或在应用程序中的不同页面之间导航后在页面上加载元素时克服各种问题。

Selenium 4 中的隐式等待

让我们看看升级到 Selenium 4 后如何定义隐式等待。

在 Selenium 4 之前 -

driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

现在将其视为已弃用

@Deprecated 
WebDriver.Timeouts implicitlyWait(long time, TimeUnit unit);

在Selenium 4 之后 -

driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));

与scriptTimeout和pageLoadTimeout等其他等待相同:-

driver.manage().timeouts().scriptTimeout(Duration.ofMinutes(2));
driver.manage().timeouts().pageLoadTimeout(Duration.ofSeconds(10));

Selenium 4 中的显式等待

WebDriverWait 现在也期待“持续时间”而不是长时间的超时,以秒和毫秒为单位。

该方法现在在 selenium 中已弃用文章来源地址https://www.toymoban.com/news/detail-438380.html

public WebDriverWait(@NotNull org.openqa.selenium.WebDriver driver, long timeoutInSeconds)

在 Selenium 4 之前 -

 //Old syntax
WebDriverWait wait = new WebDriverWait(driver,10);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector(".classlocator")));

在 Selenium 4 之后 -

//Selenium 4 syntax
WebDriverWait wait = new WebDriverWait(driver,Duration.ofSeconds(10));
wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector(".classlocator")));

Selenium 4 中的 FluentWait

在 Selenium 4 之前 -

Wait<WebDriver> wait = new FluentWait<WebDriver>(driver)
  .withTimeout(30, TimeUnit.SECONDS)
  .pollingEvery(5, TimeUnit.SECONDS)
  .ignoring(NoSuchElementException.class);

在 Selenium 4 之后 -

 Wait<WebDriver> fluentWait = new FluentWait<WebDriver>(driver)
        .withTimeout(Duration.ofSeconds(30))
        .pollingEvery(Duration.ofSeconds(5))
        .ignoring(NoSuchElementException.class);

到了这里,关于Java Selenium中的等待和超时的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • selenium WebDriver 中的几种等待--sleep(),implicitly_wait(),WebDriverWait()

    目录 强制等待:sleep() 隐式等待:implicitly_wait() 显示等待:WebDriverWait() 与until()或者until_not()方法结合使用 WebDriverWait与expected_conditions结合使用 显示等待,自定义等待条件 设置固定休眠时间,单位为秒。 由python的time包提供, 导入 time 包后就可以使用。 缺点:不智能,使用太多的

    2024年02月16日
    浏览(37)
  • Kafka错误解决:kafka.zookeeper.ZooKeeperClientTimeoutException:连接超时等待解决方案

    在使用Kafka时,有时候会遇到\\\"kafka.zookeeper.ZooKeeperClientTimeoutException: Timed out waiting for connection\\\"这样的错误。本文将介绍如何解决这个问题,并提供相应的源代码示例。 Kafka是一个分布式流处理平台,它使用ZooKeeper来管理集群的元数据和协调器。当连接到ZooKeeper服务器超时时,就

    2024年02月06日
    浏览(45)
  • selenium的三种等待方式(强制等待,隐式等待,显示等待)

    目录 1.强制等待(无条件等待) 2.隐式等待 3.显示等待 有时候做自动化测试,需要进行等待,因为下一步的操作依赖于上一步的结果,但是程序执行的很快,有时候页面还未加载完成就进行了下一步的操作,很容易就出现错误,例如像【NO SuchElement Exception】有时候就是因为这

    2024年02月15日
    浏览(35)
  • Selenium 三种等待方式详解 (强制等待、隐式等待、显示等待)

    ①在进行WEB自动化工作时,一般要等待某一页面元素加载完成后,才能对该元素执行操作,否则自动化脚本会抛出找不到元素的错误,这样就要求我们在UI自动化测试的有些场景上加上等待时间。 ②等待方式的设置是保证自动化脚本稳定有效运行的一个非常重要的手段。 ①强

    2024年02月03日
    浏览(41)
  • 五、Selenium 三种等待方式:强制等待、隐式等待、显示等待

    名词解释:强制线程休眠一定时间,适合脚本调试时使用。 常用方法: Thread.sleep(long millis); 优点:适合脚本调试时使用; 缺点:不能准确把握需要等待的时间,如果用例中大量使用,会浪费不必要的等待时间,影响用例的执行效率; 操作未完成,等待结束,导致系统报错

    2023年04月08日
    浏览(37)
  • Selenium等待时间——隐性等待(implicitly_wait())

            web.implicitly_wait(),隐性等待设置了一个时间,在一段时间内网页是否加载完成,如果完成了,就进行下一步;在设置的时间内没有加载完成,则会报超时加载。         缺点是不智能,因为随着ajax技术的广泛应用,页面的元素往往都可以时间局部加载,也就是

    2024年02月15日
    浏览(38)
  • response的Content-Length设置错误,导致springboot文件下载,代码已经return,postman一直等待到超时

    最近在工作中遇到了文件下载的需求, 期初以为也很简单, DownloadController 启动后访问,localhost:8080/download 请求处理完后,postman 一直在等待, response的head儿中设置了content-length,导致写出的数据不相等时, postman 便一直等待,直至超时, 已写出的数据就是byte字节数组,后台

    2024年01月17日
    浏览(64)
  • 一定要会用selenium的等待,3种等待方式解读

    很多人问,这个下拉框定位不到、那个弹出框定位不到…各种定位不到, 其实大多数情况下就是两种问题: 有frame 没有加等待 殊不知,你的代码运行速度是什么量级的,而浏览器加载渲染速度又是什么量级的,就好比闪电侠和凹凸曼约好去打怪兽,然后闪电侠打完回来之后

    2024年03月16日
    浏览(48)
  • Selenium 等待方式详解

    在自动化测试脚本的运行过程中,webdriver操作浏览器的时候,对于元素的定位是有一定的超时 时间,大致在1-3秒 如果这个时间内仍然定位不到元素,就会抛出异常,中止脚本执行 我们可以通过在脚本中设置等待的方式来避免由于网络延迟或浏览器卡顿导致的偶然失败 强制等

    2024年02月03日
    浏览(43)
  • 【selenium】三种等待方式

    time模块中的sleep()方法,程序执行到此代码时强制等待一段时间。 time.sleep(time),传入具体的等待时间time 可以控制等待的具体时间,一般在调试代码时使用 无法准确把握需要等待的时间 如果设置时间过短,操作还未完成,等待时间已到,会导致测试用例执行报错,影响测试

    2024年02月03日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包