Как получить текст самого глубокого текста? - PullRequest
4 голосов
/ 09 мая 2019

Иногда требуемый текст предназначен для класса A, но в других случаях появляется более глубокий класс B, а затем текст перемещается в более глубокий класс B. Как, используя xpath, получить текст из самого глубокого класса с текстом?

<?xml version="1.0" encoding="UTF-8"?>
<html>
   <td>
      <span class="classA">wanted text in case when classA is deepest one</span>
   </td>
   <td>
      <span class="classA">
         <span class="classB">wanted text in case when classB is deepest one</span>
      </span>
   </td>
</html>

Ответы [ 2 ]

3 голосов
/ 09 мая 2019

Предполагая, что classA всегда существует;

if(driver.findElements("//span[@class='classB']").size() > 0)
    return By.xpath("//span[@class='classB']");
else
    return By.xpath("//span[@class='classA']");

Обновляется в соответствии с новой потребностью.Вот xpath, который вы ищете.

//span[not(descendant::span)]
1 голос
/ 09 мая 2019

Вот еще один вариант, чтобы получить последний интервал каждого тд.

//td//descendant::span[last()]

Вот доказательство. enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...