寻找选项来检查页面是否完全加载了 Java for Selenium 中的所有元素



我正在寻找Java+ selenium中的函数,我可以在其中检查或验证页面是否已完全加载。我看到了JS的onLoad(),但在java上什么都没有,JAVA有什么东西吗?

我也看到了这些:

WebDriver driver = new AnyDriverYouWant();
if (driver instanceof JavascriptExecutor) {
((JavascriptExecutor)driver).executeScript("yourScript();");
} else {
throw new IllegalStateException("This driver does not support JavaScript!");
}

但同样是JS,需要用JS编写脚本 如何将JavaScript与Selenium WebDriver Java一起使用

更新- 也可以尝试这些解决方案:void waitForLoad(WebDriver driver) { new WebDriverWait(driver, 30).until((ExpectedCondition<Boolean>) wd -> ((JavascriptExecutor) wd).executeScript("return document.readyState").equals("complete")); }

从这里 https://stackoverflow.com/a/15124562/12115696

为了确定页面是否已完全加载,您需要确定页面上的哪些 WebElements 指示加载状态。例如,如果存在某种类型的加载掩码,则需要等到隐藏加载掩码以验证页面是否已完全加载。

下面是一个简单的"等待加载"函数,它利用了ExpectedConditions类:

给定以下加载掩码的 HTML:

<div id='load-mask' style='display: block'/>

您可以使用以下代码等待加载掩码被隐藏:

var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(seconds));
wait.Until(ExpectedConditions.InvisibilityOfElementLocated(By.Id("load-mask")));

编辑 -- 根据提问者的要求,添加了一个仅限 JavaScript 的等待函数:

wait.until(driver=> ((JavascriptExecutor)driver).executeScript("return document.readyState").equals("complete"));

这将检查 JavaScript 中的document.readyState属性,并在readyState设置为complete后完成等待。

相关内容

  • 没有找到相关文章

最新更新