![](/img/trans.png)
[英]InvalidSelectorError: The result of the xpath expression is [object Text]. It should be an element
[英]Selenium WebDriver find object text. Errors out with The result of the xpath expression is: [object Text]. It should be an element
我正在使用 Selenium 來驗證 web 頁面中是否存在某些文本。 這就是 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]
我無法使用常規方式識別此元素,因為它返回 object 文本而不是元素。
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 來查找此文本 object。 但是當我運行下面的代碼時,它返回 null。
IJavaScriptExecutor javascriptExecutor = (IJavaScriptExecutor)webDriver;
String value = (String)javascriptExecutor.ExecuteScript("document.evaluate(\"//div[contains(@class, 'a-content')]//br[1]/preceding-sibling::text()[1]\") ; ");
對此的任何幫助表示贊賞。
您應該能夠取出“::text()”以獲取 web 元素(然后獲取 Text 屬性):
var x = webDriver.FindElement(By.XPath("//div[contains(@class, 'a-content')]//br[1]/preceding-sibling")).Text;
添加::text() 將返回您選擇的元素的文本。 這是 xapth 的一個特性,不符合 findElement 的 WebElement 期望。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.