dok*_*par 35 java hidden-field selenium-webdriver
我试图1000从这样的隐藏中读取示例String <div>:
<div id="hidden_div" style="visibility:hidden">1000</div>
Run Code Online (Sandbox Code Playgroud)
我知道这WebElement.getText()对Selenium 2(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);
Run Code Online (Sandbox Code Playgroud)
但它对我不起作用,变量n总是最终的结果null.我究竟做错了什么?
小智 67
也可能有用:
在某些情况下,人们可能会发现它很有用,以获得隐藏的文字,这可以从元素的检索textContent,innerText或innerHTML属性,通过调用element.attribute('attributeName').
element.getAttribute("textContent") 为我工作.
在那里查看更多详细信息 - > http://yizeng.me/2014/04/08/get-text-from-hidden-elements-using-selenium-webdriver/
spe*_*ope 24
编辑:哦,这工作.
String script = "return document.getElementById('hidden_div').innerHTML";
Run Code Online (Sandbox Code Playgroud)
在Firefox中.
这也是如此.
String script = "return arguments[0].innerHTML";
Run Code Online (Sandbox Code Playgroud)
我试过但它似乎不适用于纯Javascript.使用Jquery启动浏览器,如此处所述.如何在Selenium中使用JQuery?并使用以下代码编写脚本.
String script = "return $('#hidden_div').text();";
Run Code Online (Sandbox Code Playgroud)
这有效.
在已经给出的答案的基础上,我创建了这个实用程序方法(Java).也许这对其他人有帮助.
public static String getText(WebDriver driver, WebElement element){
return (String) ((JavascriptExecutor) driver).executeScript(
"return jQuery(arguments[0]).text();", element);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
59652 次 |
| 最近记录: |