一尘不染

如何使用Selenium WebDriver从隐藏元素中读取文本?

java

我正在尝试1000从隐藏的示例中读取示例字符串<div>

<div id="hidden_div" style="visibility:hidden">1000</div>

我知道这WebElement.getText()不适用于Selenium2(WebDriver)中的隐藏元素,因此我搜索了解决方案(像这样),显然以下代码应该可以工作:

WebElement hiddenDiv = seleniumDriver.findElement(By.id("hidden_div"));
String n = hiddenDiv.getText(); // does not work (returns "" as expected)
String script = "return arguments[0].innerText";
n = (String) ((JavascriptExecutor) driver).executeScript(script, hiddenDiv);

但这对我不起作用,变量n始终以结尾null。我究竟做错了什么?


阅读 211

收藏
2020-09-09

共1个答案

一尘不染

编辑:哦,这可行。

String script = "return document.getElementById('hidden_div').innerHTML";

在Firefox中。

这也是。

String script = "return arguments[0].innerHTML";

我也尝试过,但是它似乎不能用于纯Javascript。如此处所述,使用Jquery启动浏览器。如何在Selenium中使用JQuery?并使用以下代码编写脚本。

String script = "return $('#hidden_div').text();";

这可行。

2020-09-09