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

2022-08-31 21:10:01

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

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

我知道它不适用于Selenium 2(WebDriver)中的隐藏元素,所以我搜索了解决方案(像这个),显然下面的代码应该有效:WebElement.getText()

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);

但它对我不起作用,变量总是以.我做错了什么?nnull


答案 1

可能也很有用:

在某些情况下,人们可能会发现获取隐藏文本很有用,可以通过调用 从元素的 ,或属性中检索隐藏文本。textContentinnerTextinnerHTMLelement.attribute('attributeName')

element.getAttribute("textContent")为我工作。

查看更多详细信息 -> http://yizeng.me/2014/04/08/get-text-from-hidden-elements-using-selenium-webdriver/


答案 2

编辑:哦,这有效。

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

在火狐中。

这个也是如此。

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

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

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

这有效。


推荐