java - 调用 `<script>` 时如何从 HTML DOM 内的 `element.getText()` 标记中排除文本

标签 java selenium dom selenium-webdriver webdriver

我正在 Java 上使用 selenium 来测试 HTML 页面。下面是一个 HTML 示例:

<a>
  Return to homepage
  <script>
    <form>...</form>
  </script>
</a>

我需要获取 <a> 的文本元素来检查它是否正确。

当我调用 Return to homepage 时,Chrome、Firefox、IE 和 Edge 会返回正确的文本 ( element.getText() )为此<a>元素,但 Safari 还返回位于 <script> 内的文本标签(不是文本,而是 HTML 代码)

有没有办法可以排除 <script> 的内容当我调用element.getText()时对于我的<a>元素?

这种情况仅发生在 Safari(最新的浏览器和驱动程序版本)

最佳答案

由于您已经将WebElement识别为元素,接下来您可以借助 executeScript() 的帮助。提取文本返回首页的方法如下:

String myText = ((JavascriptExecutor)driver).executeScript("return arguments[0].firstChild.textContent;", element);

关于java - 调用 `&lt;script&gt;` 时如何从 HTML DOM 内的 `element.getText()` 标记中排除文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49538814/

相关文章:

java - 如何提高weka中SMO分类器的性能?

java - 上传图片到服务器

java - "java.lang.IllegalStateException: The driver executable does not exist"报告奇数附加路径

javascript - 检索 .textContent 包括伪元素

Javascript 嵌入式谷歌地图无法完全加载

java - 点击按钮后隐藏java中的框架

java - TestNG 参数无法识别字符串参数

python - 将 anticaptcha 与 selenium 集成

javascript - appendchild 中的上标 html 标签

java - vtd-xml 获取/删除属性名称和值