2014-12-24 7 views
0

У меня есть HTML с различным DIV это внутри Span в:Селен WebDriver (Java) - с помощью AND/OR условия в XPATH

<div class="test1"> 
    <div class="test2"> 
     <span title="Time">Today 11:12am</span> 
    </div> 
    <div class="test3"> 
     <span class="test4">Windows 7 64 bit</span> 
     <span class="test5">Something</span> 
    </div> 
</div> 
<div class="test6"> 
    <div class="test2"> 
     <span title="Time">Today 11:15am</span> 
    </div> 
    <div class="test3"> 
     <span class="test4">Windows 8 64 bit</span> 
     <span class="test5">Something</span> 
    </div> 
</div> 

Я хочу, чтобы найти элементы, используя XPATH, выбирая конкретный текст из различного диапазона х. Например, мне нужно найти элемент, где истинно: «Сегодня» текст и «Windows 7» текст.

Итак, я попытался это заявление:

//div[@class="test1"]/div[contains(span,'Today') and contains(span,'Windows')] 

Но это не работает. Я пытался использовать OR внутри, он работает только для одного истинного оператора.

Есть ли другие варианты?

ответ

1
//div[.//span[contains(text(), 'Today')] and .//span[contains(text(), 'Windows 7')]] 

будет работать. Указанный вами [expression] может буквально быть чем угодно, поэтому вы можете найти другой элемент поиска внутри. Символ . также является ключевым здесь, гарантируя, что поиск ограничен областью текущего родителя (то есть div, а не весь документ).

0

Я думаю, что нашел решение. Это может быть:

//div[@class="test1"]/div[contains(span,'Today')]/following::div(span,'Windows')] 
Смежные вопросы