2017-02-16 15 views
2

Я пытаюсь получить XPath для Search Results:. Однако, когда я придав ему //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

Чтобы использовать значение текста текст() функция

Вот код

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

Спасибо Сунил, его признавая текст в firepath. –

+0

, если это помогло, вы можете принять/отменить ответ;) –

+0

Спасибо Сунил, его распознающий текст в firepath. Но селен не распознает элемент. Я пытаюсь получить текст «Результаты поиска: –

0

You не может использовать XPath с selenium, чтобы получить текстовый узел, например, @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

Спасибо Andersson, я пробовал подход, который вы рекомендовали. Selenium не может распознать Xpath // span [@ class = 'zeiss-font-Md aletssubtitle'] –

+0

Что значит «не способен распознать»? Доля точное исключение – Andersson

+0

Я использую приведенный ниже код \t Строка xpath = "// span [@ class = 'zeiss-font-Md aletssubtitle']"; \t int xpathcount = driver.findElements (By.xpath (xpath)).размер(); \t System.out.println («Размер xpath:» + xpathcount); \t WebElement span = driver.findElement (By.xpath (xpath)); –

0

Можете ли вы попробовать использовать CSS Selecto г, как показано ниже:

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

ИЛИ

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

также должны работать.

0

Это просто, Вы можете попробовать: // * [текст() = 'Результаты поиска:']

Надеется, что это поможет вам,

Спасибо, Ed D, Индию.