javascript - 在 Selenium 中正确使用 document.readyState

标签 javascript java selenium

我正在寻找一种向下滚动到在滚动时加载内容的页面的方法,以便在我开始使用 Selenium 与其交互之前加载所有内容。

我发现下面这段代码是针对 C# 发布的,我将其更改为 Java。它编译并运行。但是即使页面到达末尾,也没有跳出循环

        Boolean readyStateComplete = false;
        while (!readyStateComplete)
        {
            JavascriptExecutor executor = (JavascriptExecutor) driver;
            executor.executeScript("window.scrollTo(0, document.body.offsetHeight)");
            readyStateComplete = (String) executor.executeScript("return document.readyState") == "complete";
        }

我不太了解 Javascript。如何纠正?

最佳答案

请尝试使用 .equals() 方法代替 == 我的意思是

readyStateComplete = ((String) executor.executeScript("return document.readyState")).equals("complete"); 

== tests for reference equality (whether they are the same object).

.equals() tests for value equality (whether they are logically "equal").

关于javascript - 在 Selenium 中正确使用 document.readyState,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36932372/

相关文章:

javascript - 如何使用 JavaScript 将 html 选择器的选项发送到 Controller 中?

java - Apache camel 和 SQS 扩展客户端库

java - 定时器到期时关闭框架

java - 除了依赖项之外,Maven 中 pom.xml 文件的用途是什么 - Selenium

r - 使用最新版本的 RSelenium 在 Chrome 中启用 Adblocker 扩展

javascript - 检查 Jest 中数组不包含虚假值

Javascript/ECMAScript 垃圾收集

javascript - 在 Javascript/JQuery 中用 <a href> 标签替换 [url] 标签

java - 使用 log4j 生成日志文件的问题

java - 使用 Selenium java 和 Windows 操作系统的 URL 未在 headless (headless) chrome 中打开