当前位置: 首页 > 知识库问答 >
问题:

如何让selenium 3.4.0等待页面加载?

景震博
2023-03-14

我正在使用selenium web驱动程序3.4.0查找网站的响应时间。在较早的版本中,我使用了WebDriver wait=new WebDriverWait(driver,10);Wait.Until(ExpectedConditions.VisibilityOfElementLocated(By.id(“myid”)));查找加载的页面。

但这两行代码不适用于版本3.4.0。有没有其他方法可以计算页面的加载时间呢?还是等到页面加载完毕?此外,我需要检测模式对话框,将载入按钮点击。我是在eclipse IDE中使用动态web项目来实现的。

我还需要等待一段时间,直到某个click事件完成加载Dom元素。wait.until()对selenium 3.4.0不起作用。如何让硒等到某种元素可见?

共有1个答案

徐晔
2023-03-14

您可以使用JavascriptExecutor获取页面的就绪状态,并将其作为预期条件传递给您的wait.until()

这里是这个的参考代码,

ExpectedCondition<Boolean> expectation = new
            ExpectedCondition<Boolean>() {
        public Boolean apply(WebDriver driver) {
            return ((JavascriptExecutor) driver).executeScript("return document.readyState").toString().equals("complete");
        }
    };
    try {
        Thread.sleep(1000);
        WebDriverWait wait = new WebDriverWait(LocalDriverManager.getDriver(), 30);
        wait.until(expectation);
    } catch (Throwable error) {
        Assert.fail("Timeout waiting for Page Load Request to complete.");
    }
 类似资料:
  • 我已经用C#启动了一个Selenium项目。试图等待页面完成加载,然后才进行下一个操作。 我的代码如下所示: 在LoginPage.SelectRole(TestCase.orgUnit)中: 我搜索元素RolehierachyLabel。我一直在尝试使用多种方法来等待页面加载或搜索允许一些超时的元素属性: 你将如何解决这个障碍?

  • 我试图创建一个等待加载页面的方法,但我出现了一个错误。可能我没有正确使用这个方法。 错误是:

  • 本文向大家介绍jQuery EasyUI 页面加载等待及页面等待层,包括了jQuery EasyUI 页面加载等待及页面等待层的使用技巧和注意事项,需要的朋友参考一下 下面一个代码片段是 easyUI 页面加载等待,代码如下所示: 下面看个工具类 基于easyui的页面等待提示层,即mask 效果图: 以上所述是小编给大家介绍的jQuery EasyUI 页面加载等待及页面等待层,希望对大家有所帮

  • 我开发网络爬虫有一段时间了,对我来说最常见的问题是等待页面完全加载,包括请求,框架,脚本。我是说彻底结束了。 我使用了几种方法来修复它,但当我使用多个线程来抓取网站时,我总是遇到这种问题。驱动程序打开自己,通过URL,不等待并通过下一个URL。 我的尝试是: wait . until(expected conditions . visibilityofelementlocated(by . XPa

  • 我尝试遵循return((JavascriptExecutor)driver.executescript(“return document.readystate”).equals(“complete”); 但它不起作用 基本上,上面的命令不能识别以下操作[testng]1535139249496 addons.productaddons信息发送请求到:https://aus5.mozilla.or

  • 问题内容: 我编写了一个脚本,该脚本从页面中获取数据,但是有时页面需要花费一些时间来加载,因此当将html拉到汤对象中时,有时它什么也不会拉,因为页面仍然需要完成。 我编写了以下代码以等待页面完成。 有用 但是调用函数时出现以下错误; 问题答案: 我认为您应该这样使用: 如手册所述。