2015-05-20 6 views
1

У меня есть одно веб-приложение, в котором есть одна страница HTML.Как я могу получить список элементов или данных, которые находятся на одном уровне с одинаковыми атрибутами?

На этой странице структуры, как это:

<div class = 'abc'> 
      <div class = 'pqr'>test1</div> 
</div> 
<div class = 'abc'> 
      <div class = 'pqr'>-</div> 
</div> 
<div class = 'abc'> 
      <div class = 'pqr'>-</div> 
</div> 
<div class = 'abc'> 
      <div class = 'pqr'>test2</div> 
</div> 
<div class = 'abc'> 
      <div class = 'pqr'>-</div> 
</div> 

Здесь я хочу взять данные из test1 test2 в.

Я пробовал xpath с [Node Number] Но я нашел все узлы на уровне [1].

Есть ли способ получить все данные или Список элементов test1 to test2 с помощью «-»?

+0

Сообщение XPath вы пробовали, выбранные с помощью этого XPath элементы, и элементы, которые должны быть выбраны – har07

ответ

2

Я видел этот вид проблемы раньше.

Здесь вы должны использовать следующий сиблинг.

  • Сначала я использую этот тип: XPath

    //div[text()='test1']/..//following-sibling::div[@class='pqr» и нет (содержит (текст(), 'тест'))]

  • Затем вам необходимо сменить сценарий. "Примечание: Я написал код в JAVA"

    Логика:

    в то время как (элемент, найденный текст = '-') { // получить данные здесь }

Попробуйте этот подход.

+0

Это помогло мне благодарить. – SRM21

-1

Я думаю, что вы не можете использовать элементы Test1 и Test2 как идентификаторы, потому что они находятся на той же линии, что и узлы, которые вы хотите собрать. В противном случае, я думаю, вы можете использовать findElements (by.Xpath ("patern_to_search")). который вернет вам набор элементов, соответствующих вашему шаблону.

2

Я предполагаю вы хотите следующее:

XPath
(//div[@class='pqr'])[position()<=4] 

Обратите внимание, что скобки () перед тем position() предиката.

выход в xpath tester:

Element='<div class="pqr">test1</div>' 
Element='<div class="pqr">-</div>' 
Element='<div class="pqr">-</div>' 
Element='<div class="pqr">test2</div>' 
+0

Я попробую этот подход. – SRM21

-1

еще один способ без использования XPath:

List<WebElement> element = driver.findElements(By.className("pqr"));  
    for(int i=0;i<element.size()-1;i++){ 
     System.out.println(element.get(i).getText()); 
    } 
+0

Почему это нисходящее слово ?, вопрос: «Есть ли способ получить все данные или Список элементов test1 для test2 с« - »?» .... Код, который я дал, определенно работает на одном из своих ... . Было бы полезно, если бы человек дал причину для downvoting – skumar

Смежные вопросы