Selenium中的xPath - 我做错了什么?

时间:2009-10-09 09:29:04

标签: selenium xpath

我在HTML中有一个包含以下代码段的页面:

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

现在我正在尝试使用Selenium中的XPath表达式指定<tr>标记。这是我尝试的:

 //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 个答案:

答案 0 :(得分:3)

它使用相同的代码段为我工作。也许HTML中的其他内容会导致问题?您是否有多个具有相同ID的<tr>(或任何其他元素)?

因为ID(意味着)是唯一的,所以您应该可以放心地使用第二个XPath表达式。或者,您可以使用以下内容,但请务必在您的定位器前加xpath=,以便Selenium知道您正在使用的定位器类型:

xpath=id('c_scopePane4_tr_header')

此外,如果您只想选择<tr>元素,那么您还可以使用以下方法之一:

  • c_scopePane4_tr_header
  • 标识符= c_scopePane4_tr_header
  • ID = c_scopePane4_tr_header

答案 1 :(得分:0)

备用CSS样式定位器:

css=tr#c_scopePane4_tr_header

或DOM样式:

dom=document.getElementById("c_scopePane4_tr_header")