【发布时间】:2025-12-28 19:25:16
【问题描述】:
我正在使用 Selenium 来验证网页中是否存在某些文本。这就是 html 的样子。
<html>
<div class="a-content">
<!--!-->==$0
"
Text to Find"
<br>
<br>
"
Second Text to find"
<br>
</div>
我能够识别此文本的唯一方法是通过 xpath。
//div[contains(@class, 'a-content')]//br[1]/preceding-sibling::text()[1]
我无法使用常规方法来识别此元素,因为它返回对象 Text 而不是元素。
var x = webDriver.FindElement(By.XPath("//div[contains(@class, 'a-content')]//br[1]/preceding-sibling::text()")).Text;
这是我得到的错误:
OpenQA.Selenium.InvalidSelectorException : 无效选择器: xpath 表达式的结果 "//div[contains(@class, 'a-content')]//br[1]/preceding-sibling::text() " 是:[对象文本]。它应该是一个元素。
或者,我尝试使用 JavaScript Executer 来查找此文本对象。但是当我运行下面的代码时,它返回 null。
IJavaScriptExecutor javascriptExecutor = (IJavaScriptExecutor)webDriver;
String value = (String)javascriptExecutor.ExecuteScript("document.evaluate(\"//div[contains(@class, 'a-content')]//br[1]/preceding-sibling::text()[1]\") ; ");
对此的任何帮助表示赞赏。
【问题讨论】:
标签: javascript selenium selenium-webdriver xpath