【问题标题】:How to wait for page load in selenium webdriver如何在 selenium webdriver 中等待页面加载
【发布时间】:2019-01-31 07:52:15
【问题描述】:

我正在使用 selenium-server-3.7.1 和 Firefox 57

如何等待页面完全加载

我试过关注 return ((JavascriptExecutor) 驱动程序).executeScript( "return document.readyState").equals("complete");

但它不起作用

基本上上面的命令不能识别下面的操作 [testng] 1535139249496 addons.productaddons INFO 发送请求至:https://aus5.mozilla.org/update/3/GMP/57.0.4/20180103231032/Linux_x86_64-gcc3/en-US/release/Linux%204.1.12-112.14.10.el7uek.x86_64%20(GTK%203.22.10%2Clibpulse%2010.0.0)/default/default/update.xml [testng] 1535139249669 addons.productaddons INFO 下载完成文件 [testng] 1535139249818 addons.productaddons INFO下载XHR文件下载。状态=200 [testng] 1535139249821 addons.productaddons INFO 下载的文件将保存到 /tmp/tmpaddon-c61a84 [testng] 1535139738375 addons.manager INFO 跳过后台更新检查 [testng] 1535139978387 DeferredSave.extensions.json DEBUG 保存更改 [testng] 1535139978387 DeferredSave.extensions.json DEBUG 启动计时器 [testng] 1535139978409 DeferredSave.extensions.json DEBUG 开始写入 [testng] 1535139978412 DeferredSave.extensions.json DEBUG 写入成功

我给了 30 秒的硬睡眠来完成这些操作 有没有办法等待这些操作完成?

【问题讨论】:

    标签: selenium-webdriver selenium3 firefox-57+


    【解决方案1】:

    在自动化脚本中,需要等待多个实例。不能使用 Thread.Sleep();每次。页面需要等待 JQuery、JavaScript、Angular 加载。并且只有document.readyState无法处理,如果应用程序建立,我们必须等待所有物质。因此,我们可以创建单个方法来等待页面加载,并且该方法可以调用多次。

    这是相同的博客链接,它将帮助您理解它。 Click Here

    您可以包含那些构建您的应用程序的方法。

    如果博客链接可能丢失,可以使用示例 Github 项目。 Click Here

    【讨论】:

      【解决方案2】:
      Wait wait = new FluentWait(driver)
      .withTimeout(30000, TimeUnit.SECONDS) .pollingEvery(5, TimeUnit.SECONDS) .ignoring(NoSuchElementException.class);
      

      希望对你有帮助

      【讨论】:

      • 请描述,以便提问者理解
      猜你喜欢
      • 2012-07-07
      • 1970-01-01
      • 1970-01-01
      • 2014-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-12
      • 1970-01-01
      相关资源
      最近更新 更多