Подтвердить что ты не робот

XPath:: Получить следующий сиблинг

У меня есть следующая структура HTML: Я пытаюсь создать надежный метод для извлечения второго элемента digest цвета, поскольку в DOM будет много этих тегов.

<table>
  <tbody>
    <tr bgcolor="#AAAAAA">
    <tr>
    <tr>
    <tr>
    <tr>
      <td>Color Digest </td>
      <td>AgArAQICGQMVBBwTIRQHIwg0GUMURAZTBWQJcwV0AoEDAQ </td>
    </tr>
    <tr>
      <td>Color Digest </td>
      <td>2,43,2,25,21,28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,33,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, </td>
    </tr>
  </tbody>
</table>

Я пытаюсь извлечь второй элемент td "Color Digest", который имеет декодированное значение.

Я написал следующий xpath, но вместо получения второго я не получаю второй элемент td.

//td[text() = ' Color Digest ']/following-sibling::td[2]

И когда я меняю его на td [2] на td [1], я получаю оба элемента.

4b9b3361

Ответ 1

Вы должны искать второй tr, у которого есть td, равный "Color Digest", тогда вам нужно посмотреть либо следующую сестру первого td в tr, либо на второй td.

Попробуйте следующее:

//tr[td='Color Digest'][2]/td/following-sibling::td[1]

или

//tr[td='Color Digest'][2]/td[2]

http://www.xpathtester.com/saved/76bb0bca-1896-43b7-8312-54f924a98a89

Ответ 2

Вы можете найти идентификатор списка элементов с xPath:

//td[text() = ' Color Digest ']/following-sibling::td[1]

Это даст вам список из двух элементов, чем вы можете использовать 2-й элемент как ваш предполагаемый. Например:

List<WebElement> elements = driver.findElements(By.xpath("//td[text() = ' Color Digest ']/following-sibling::td[1]"))

Теперь вы можете использовать 2-й элемент в качестве вашего предполагаемого элемента, который является элементом element.get(1)

Ответ 3

/html/body/table/tbody/tr[9]/td[1]

В Chrome (возможно, Safari тоже) вы можете проверить элемент, а затем щелкнуть правой кнопкой мыши по тегу, для которого вы хотите получить xpath, тогда вы можете скопировать xpath, чтобы выбрать этот элемент.

Ответ 4

Кто-нибудь может помочь мне выяснить xpath с последующим братом для этого? :)

<tbody id="search-results">
                                    <tr>
        <td>Name</td>
            <td><a href="/some/random/text" Somedddme1 </a></td>
            <td>reg kood: 123456778</td>
</tr>
<tr>
        <td>Name</td>
            <td><a href="some/random/text" Somdame2 </a></td>
            <td>reg kood: 123456778</td>
</tr>
<tr>
        <td>Name</td>
            <td><a href="some/random/text" Somaaname3 </a></td>
            <td>reg kood: 123456778</td>
</tr>
<tr>
        <td>Name</td>
            <td><a href="some/random/text" Soddddme4 </a></td>
            <td>reg kood: 123456778</td>
</tr>
<tr>
        <td>Name</td>
            <td><a href="some/random/text" Soge5 </a></td>
            <td>reg kood: 123456778</td>
</tr>
<tr>
        <td>Name</td>
            <td><a href="some/random/text" Some-me6 </a></td>
            <td>reg kood: 123456778</td>
</tr>
<tr>

   and so on.......