xPath in Selenium - что я делаю не так? - PullRequest
0 голосов
/ 09 октября 2009

У меня есть страница со следующим фрагментом в HTML:

...
<tbody id="c_scopePane4_tbody">
<tr id="c_scopePane4_tr_header">
...
</tr>
</tbody>
...

Теперь я пытаюсь указать тег <tr> с выражением XPath из Selenium. Вот что я пытаюсь:

 //tr[@id='c_scopePane4_tr_header']

Это говорит мне

[error] locator not found: //tr[@id='c_scopePane4_tr_header'], error = Error:
Element //tr[@id='c_scopePane4_tr_header'] not found 

Но если я изменю выражение XPath на:

 //*[@id='c_scopePane4_tr_header']

... тогда это работает. Что дает?

Ответы [ 2 ]

3 голосов
/ 09 октября 2009

Это работает для меня с тем же фрагментом. Возможно, есть что-то еще в вашем HTML, что вызывает проблемы? У вас есть более одного <tr> (или любого другого элемента) с таким же идентификатором?

Поскольку идентификаторы (которые должны быть) уникальны, вы сможете уверенно использовать второе выражение XPath. В качестве альтернативы вы можете использовать следующее, но не забудьте поставить перед вашим локатором xpath=, чтобы Selenium знал тип используемого вами локатора:

xpath=id('c_scopePane4_tr_header')

Кроме того, если вы просто хотите выбрать элемент <tr>, вы также можете использовать один из следующих вариантов:

  • c_scopePane4_tr_header
  • Идентификатор = c_scopePane4_tr_header
  • ID = c_scopePane4_tr_header
0 голосов
/ 15 октября 2009

Альтернативный локатор стилей CSS:

css=tr#c_scopePane4_tr_header

или DOM Стиль:

dom=document.getElementById("c_scopePane4_tr_header")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...