2013-07-12 30 views
2

我使用的是Selenium IDE,我有一个表格,它有许多rowns和columns。每行都有自己的复选框来选择这一行。Selenium IDE - 选择表格行上的复选框

我用这个命令来搜索特定行:

css=tr:contains('US Tester4') input[type="checkbox"] 

但问题是,在这个科拉姆,我有一个像“美国Tester41”,“美国Tester42”其他一些类似的话.. 。当我使用这个命令时,它选择了错误的行。

我想如果我替换为“等于”或“完全”等其他字样的“包含”这个词可以工作,但它没有(我不知道sintax)。

任何想法?

按照截图: http://oi41.tinypic.com/2ake9hw.jpg

+0

我会高度*建议不要使用CSS'contains'选择器。你能提供另一个吗? – Arran

+0

提供什么?对不起,我是这个CSS和Selenium世界的新手:p – sanjuro8998

回答

2

我不熟悉的硒IDE,但我的webdriver将使用XPath的硒。所以我想这样的事情会为你工作:

xpath=//tr[td[3][text()='US Tester4']]//input[@type='checkbox'] 
+0

它没用(我确实做错了什么)......这里有一个屏幕让它更容易:http://oi41.tinypic.com /2ake9hw.jpg – sanjuro8998

+0

根据你的截图,我更新了我的答案。没有代码就很难获得精确的xpath。也许你可以把表格内容放在jsfiddle上。您还可以使用开发人员工具在Chrome中测试您的xpath。尝试在控制台上运行:$ x(“// tr [td [3] [text()='US Tester4']] // input [type ='checkbox']”),看看是否找到任何匹配。 – joostschouten

+1

它对我有用: // tr [td [3] [text()='US Tester4']] //输入[@ name ='uid'] Thanks! – sanjuro8998

0

这为我工作:

//tr//td[.='US Tester4']//input[type="checkbox"] 

反对:

<table> 
<tr><td>US Tester</td>input(type="checkbox")</tr> 
<tr><td>US Tester4</td>input(type="checkbox")</tr> 
<tr><td>US Tester41</td>input(type="checkbox")</tr> 
<tr><td>US Tester412</td>input(type="checkbox")</tr> 
</table> 

它相匹配的第二个元素。

+0

它对我有用: // tr [td [3] [text()='US Tester4']] //输入[@ name ='uid'] Thanks! – sanjuro8998

+0

对标签的位置进行硬编码并不是一个好主意,即td [3],因为它不会使xpath动态化。如果要将另一个表格行添加到此页面,则可能无法使用该xpath找到该元素。 – ggolding

0

这为我工作

xpath=(//input[@name='uid'])[2])

的2是elemets

+0

它对我有用: // tr [td [3] [text()='US Tester4']] //输入[@ name ='uid'] Thanks! – sanjuro8998

0

的我不是很熟悉的IDE顺序,但我之前已经使用的webdriver。如果可能的话,我会使用这个xpath。

xpath = "//td[.= 'US Tester4']//previous-sibling::td//input[@type = 'checkbox']" 

这应该只在屏幕上找到一个元素。如果您没有足够好的标识符来确定要查找的确切元素,那么使用先前兄弟和后继兄弟会非常有用。在你的情况下,其中包含复选框没有一个好的标识符,因为后有文本,你可以匹配使用'='运算符。你只需要使用'前兄弟'来找到与复选框