Используя XPath: найдите ссылку в ячейке на 3 строки вверх - PullRequest
1 голос
/ 19 января 2009

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

Я БЫ: 1416

Редактировать / Подтвердить игнорировать Эл. адрес Название: Имя отправителя

Open N / A Место нахождения: Местоположение отправителя

Участник: нет

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

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

Я БЫ: 1417

Редактировать / Подтвердить игнорировать Эл. адрес Название: Имя отправителя

Open N / A Место нахождения: Местоположение отправителя

Участник: нет

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

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

Итак, // tr [td = 'Тестовый вопрос?'] [Last ()] будет выглядеть примерно так: "Текст вопроса: Тестовый вопрос?"

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

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

Thanx

Dave

1 Ответ

3 голосов
/ 19 января 2009

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


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

./ancestor::tr/preceding-sibling::tr[3]/td[1]/a
...