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

Selenium webdriver 如何让selenium 3.4.0等待页面加载?,selenium-webdriver,wait,Selenium Webdriver,Wait,我正在使用selenium web driver 3.4.0查找网站的响应时间。在早期版本中,我使用了 WebDriver wait=新的WebDriverWait(驱动程序,10); wait.until(预期条件。元素的可视性)(By.id(“myId”));查找已加载的页面 但这两行代码不适用于3.4.0版。有没有其他方法来计算页面的加载时间?或者等待页面加载?我还需要检测模式对话框,它将加载在按钮点击。 我正在EclipseIDE中使用动态web项目实现 我还需要等待一段时间,直到某个单

我正在使用selenium web driver 3.4.0查找网站的响应时间。在早期版本中,我使用了 WebDriver wait=新的WebDriverWait(驱动程序,10); wait.until(预期条件。元素的可视性)(By.id(“myId”));查找已加载的页面

但这两行代码不适用于3.4.0版。有没有其他方法来计算页面的加载时间?或者等待页面加载?我还需要检测模式对话框,它将加载在按钮点击。 我正在EclipseIDE中使用动态web项目实现


我还需要等待一段时间,直到某个单击事件完成加载Dom元素。Wait.until()不适用于selenium 3.4.0。如何使selenium等待某个元素可见?

您可以使用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.");
    }
ExpectedCondition期望值=新
期望条件(){
公共布尔应用(WebDriver驱动程序){
return((JavascriptExecutor)driver.executeScript(“return document.readyState”).toString().equals(“complete”);
}
};
试一试{
睡眠(1000);
WebDriverWait wait=newwebdriverwait(LocalDriverManager.getDriver(),30);
等待,直到(期望);
}捕获(可丢弃错误){
Assert.fail(“等待页面加载请求完成的超时”);
}
新WebDriveraWait()的可能副本。直到()不适用于selenium 3.4.0版。。它不会抛出任何方法发现错误!!