Использование XPath:найдите ссылку в ячейке на 3 строки выше

StackOverflow https://stackoverflow.com/questions/458126

  •  19-08-2019
  •  | 
  •  

Вопрос

У меня есть несколько строк в таблице, в одной из которых есть ссылка, по которой я хотел бы автоматически щелкнуть.Для моей отправной точки у меня есть последний экземпляр, в котором строка содержит текст "Тестовый вопрос?".:

ID:1416

Редактировать / Утверждать Игнорировать Электронная почта Имя:Имя Отправителя

Открыть N/A Расположение:Местоположение Отправителя

Участник:НЕТ

Текст вопроса:Тестовый вопрос?Ответ 1 Текст:

Текст ответа 2:

ID:1417

Редактировать / Утверждать Игнорировать Электронная почта Имя:Имя Отправителя

Открыть N/A Расположение:Местоположение Отправителя

Участник:НЕТ

Текст вопроса:Тестовый вопрос?Ответ 1 Текст:

Текст ответа 2:

Итак, //tr[td='Тестовый вопрос?'][last()] будет что-то вроде "Текст вопроса:Тестовый вопрос?"

Во всяком случае, через три ряда от этого есть строка с кучей ссылок в ней.Я хотел бы получить xpath для ссылки в первой ячейке.

Теперь я попытался использовать position(), но такие вещи, как //tr[position()=(//tr[td='Тестовый вопрос?'][last()][position()])-3] просто неправильный способ сделать это, и я не могу найти хороших примеров.

Спасибо

Дэйв

Это было полезно?

Решение

Это будет, мягко говоря, довольно корявый xpath, но вы смотрите на оси начиная с ancestor::tr а затем брат-предшественник.Туннель до <tr>, затем через три (вам нужно будет указать position() вот я думаю), а затем обычным способом спуститесь оттуда к своей цели.


Редактировать:проще, чем я думал, предыдущий брат отсчитывается в обратном направлении.

./ancestor::tr/preceding-sibling::tr[3]/td[1]/a
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top