несколько условий xpath - PullRequest
1 голос
/ 27 мая 2010

в селен IDE, Мне нужно найти третью ссылку, текст которой 'XXX'

<tr>
  <td>clickAndWait</td>
  <td>//a[text()='XXX'][3]</td>
  <td></td>
</tr>

ошибка: элемент не найден, есть идеи?

Ответы [ 2 ]

0 голосов
/ 27 мая 2010

Как ответил в моем комментарии сценарии селена

Это может быть связано с тонкостью в XPath, где //a[1] выберет всех потомков - элементов, которые являются первыми парами потомков своих родителей, а не первыми элементами во всем документе. Для вас может быть лучше использовать что-то вроде //body/descendant::a[1] или привязать его к элементу с идентификатором вроде id('myLinks')/descendant::a[1]. Обратите внимание, что в последнем примере вам нужно будет продолжить поиск с xpath=.

0 голосов
/ 27 мая 2010

Используйте

(//a[text()='XXX'])[3]

Выражение:

//a[text()='XXX'][3]

выбирает каждый элемент a, который имеет некоторый текстовый дочерний элемент со значением 'XXX' и является третьим дочерним по отношению к его родительскому элементу. Очевидно, что таких узлов нет, и вы не хотите этого, но вам нужен 3-й из всех таких a элементов.

Это точно выбирается первым выражением XPath выше .

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