我正在 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 - 调用 `<script>` 时如何从 HTML DOM 内的 `element.getText()` 标记中排除文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49538814/