2017-02-16 73 views
2

我正在嘗試獲取Search Results:的XPath。然而,當我給它 //span[@class='zeiss-font-Md aletssubtitle'] 它沒有檢測到文本,它的檢測範圍如何讓xpath在沒有標籤的情況下在其他標籤的同一級別上獲得文本

<div class="col-xs-12"> 
    <div class="col-xs-5" style="padding:0"> 
    <div> 
     <span class="zeiss-font-Md aletssubtitle" style="line-height:3.2"> 
      Search Results : 
      <label class="ACadmincount"> 1 Matching Results</label> 
     </span> 
    </div> 
    </div> 
</div> 

回答

0

爲了獲取文本值使用text()函數

這裏是代碼

//span[@class='zeiss-font-Md aletssubtitle']/text() 
+0

感謝Sunil,它承認firepath中的文字。 –

+0

如果這有幫助,你可以接受/ upvote答案;) –

+0

謝謝蘇尼爾,它認識到firepath中的文字。但是硒不能識別元素。我試圖讓文本'搜索結果:' –

0

你不能使用XPathselenium來獲取像@Sunil Garg建議的文本節點(//span[@class='zeiss-font-Md aletssubtitle']/text())。這是語法正確XPath表達,但selenium不支持此語法:

selenium.common.exceptions.InvalidSelectorException:消息:無效的選擇:XPath表達式的結果「//文本()」是:對象文本]。它應該是一個 元素。

它要獲取特定元素的完整或部分文字內容,你可以使用像

的Python

span = driver.find_element_by_xpath("//span[@class='zeiss-font-Md aletssubtitle']") 
span.text # returns 'Search Results : 1 Matching Results' 
driver.execute_script('return arguments[0].childNodes[0].nodeValue.trim()', span) # returns 'Search Results :' 

的Java

WebDriverWait wait = new WebDriverWait(webDriver, 10); 
WebElement span = wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//span[@class='zeiss-font-Md aletssubtitle']"))); 
String text = span.getText(); 
JavascriptExecutor jse = (JavascriptExecutor)driver; 
jse.executeScript("return arguments[0].childNodes[0].nodeValue.trim()", span); 
+0

謝謝安德森,我嘗試了你推薦的方法。 Selenium無法識別Xpath // span [@ class ='zeiss-font-Md aletssubtitle'] –

+0

你是什麼意思'無法識別'?分享確切的例外 – Andersson

+0

我使用下面的代碼\t String xpath =「// span [@ class ='zeiss-font-Md aletssubtitle']」; \t int xpathcount = driver.findElements(By.xpath(xpath))。尺寸(); System.out.println(「xpath的大小:」+ xpathcount); \t WebElement span = driver.findElement(By.xpath(xpath)); –

0

你可以嘗試使用CSS Selecto R作爲如下:

driver.findElement(By.cssSelector("span.zeiss-font-Md.aletssubtitle)).getAttribute("innerText");

OR

driver.findElement(By.cssSelector("span.zeiss-font-Md.aletssubtitle)).getText();

也應該工作。

0

這很簡單,你可以試試:// * [文本()= '搜索結果:']

希望這會幫助你,

感謝, 埃德d,印度。

相關問題