2010-06-25 2 views
1

Привет у меня есть этот HTML-код:Получение текста в селене с использованием xpath?

<tr class="odd events" style=""> 
<tr> 
    <a title="Expand to see Actions" class="toggleEvent" name="actions_for_host_1" href="#"></a> 
    <td id="7" colspan="6"> 
    <div> 
     <ul> 
     <li>Low Alarm at 2010/06/25 07:09 (<span title="2010/06/25 14:09 (UTC)" class="time_helper">Pacific</span>)</li> 
     </ul> 
     <div></div> 
    </div> 
    </td> 
</tr> 

Как я могу получить значение <li> с помощью XPath и селена рубин, так что я получаю обратно "Low Alarm at 2010/06/25 07:09 Pacific"?

Я не знаю, что дата и время будет, но я знаю, что <li> тег всегда будет начинаться с Low Alarm

благодаря

жаль, что я не мог фразу вопрос лучше.

+0

Можете ли вы представить структуру html перед ли? т. е. родители интересующего вас элемента li? – Eimantas

+0

Подробнее HTML добавил –

ответ

4

Вы должны использовать команду getText для извлечения текста с помощью подходящего локатора. Есть несколько возможных локаторы, которые вы могли бы использовать некоторые предложения, перечислены ниже:

XPath:

  • найти литиево основанный на пролете ребенка с классом time_helper

    //li[span[@class='time_helper']] 
    
  • найдите li на основе текста, начинающегося с «Низкий сигнал тревоги»

    //li[starts-with(text(), 'Low Alarm')] 
    
  • найти литиево на основе текста, содержащего 'Low Alarm'

    //li[contains(text(), 'Low Alarm')] 
    

CSS:

  • найти литиево на основе текста, начиная с 'Low Alarm'

    css=li:contains(^Low Alarm) 
    
  • найти li на основе текста, содержащего «Низкий сигнал тревоги»

    css=li:contains(Low Alarm) 
    
+0

трюк здесь метод getText. http://release.seleniumhq.org/selenium-remote-control/0.9.2/doc/java/com/thoughtworks/selenium/Selenium.html#getText(java.lang.String) – Rodreegez

2

Есть ли причина, по которой вы специально пытаетесь использовать локатор xpath для этого? Локатор CSS может также выполнять эту работу, например.

css=li:contains('Low Alarm') 
Смежные вопросы