在WebDriver中,是否可以获取不可见的标记内容?

时间:2014-08-03 05:58:21

标签: java html webdriver

我有一个在屏幕上看不到的html标签(isDisplayed返回false),但我想得到它的值。例如:

<div class="qgwy">Gift No.3726</div>

我想提取价值&#34;礼品No.3726&#34;。我尝试了这个代码,它什么都没打印出来:

WebElement gwy = driver.findElement(By.cssSelector(".qgwy"));
System.out.println(gwy.getText());

经过仔细比较,我意识到,getText()方法仅适用于元素&#39;屏幕上可见(或不隐藏)的标签。所以,我想知道是否有可能在不要求我的开发人员修改代码的情况下提取数据。

1 个答案:

答案 0 :(得分:1)

是的,可能:

问:为什么无法与隐藏元素进行交互? 答:由于用户无法读取隐藏元素中的文本,因此WebDriver也不允许访问它。

但是,可以使用Javascript执行功能直接从元素调用getText:

WebElement element = ...;
((JavascriptExecutor) driver).executeScript("return arguments[0].getText();", element);
来自Selenium的

常见问题解答: https://code.google.com/p/selenium/wiki/FrequentlyAskedQuestions#Q:_Why_is_it_not_possible_to_interact_with_hidden_elements