【问题标题】:Selenium to retrieve value from DIV elementSelenium 从 DIV 元素中检索值
【发布时间】:2017-03-13 19:32:52
【问题描述】:

我正在做一个 webScraper 项目,所以我遇到了很多应用程序,比如 pascal 和 Jsoup。现在我正在研究 Selenium ,在这方面我没有经验。
我正在努力检索 div 项的文本。

示例: 当前HTMLDiv 像这样:

<div id="j_dfg:fdfhg2:2:fasd" class="ui-tooltip ui-widget info-tooltip">
Working Fine
</div>

那么我需要我的输出是(预期输出):

工作正常

用于检索预期输出的代码:

WebElement element = firefoxDriver.findElement(By.id("j_dfg:fdfhg2:2:fasd"));
String testi = element.toString();
System.out.println("aaaaaaaaaaaaaa: "+testi);

实际输出:

aaaaaaaaaaaaaa: [[FirefoxDriver: firefox on ANY (744b2871-585c-462f-adac-b4xxxx)] -> id: j_dfg:fdfhg2:2:fasd]

请帮助我获得预期的输出。

【问题讨论】:

  • 如果我使用:element.toString().getText().toString() 它返回null。
  • 不,它没有,再次结帐,因为 getText() 是正确的方法。
  • @DineshKumar:我已经发布了我的答案。你不需要做toString(),因为你可以从 getText() 方法中得到它。 element.toString() 将 WebElement 作为字符串提供给您,而不是实际文本。

标签: java selenium selenium-firefoxdriver


【解决方案1】:

要提取文本,您需要通过以下方式使用getText() 方法:

String testi = element.getText();

【讨论】:

  • 您的代码适用于不同的 div ,但不适用于我在代码中提到的 DIV id 参考。我的代码有效吗?
  • 不同的div是什么意思?由于 id 在每个页面中都是唯一的,因此您不能有多个具有相同 id 的 div。
  • 或者至少,你不应该有多个具有相同 id 的 div,但它确实发生了。
  • 嗯!如果 div 位置不变,您可以使用 xpath。再次,我建议您确保有关 id 的信息。如果有的话,我更喜欢唯一 ID。
猜你喜欢
  • 2017-10-07
  • 2020-10-31
  • 2021-08-11
  • 1970-01-01
  • 2016-02-10
  • 1970-01-01
  • 1970-01-01
  • 2019-09-11
  • 2018-01-21
相关资源
最近更新 更多