2010-12-20 87 views
9

訪問特定的錶行。如果我有以下HTML:使用CSS選擇器與硒

<tbody id="items"> 
<tr><td>Item 1</td></tr> 
<tr><td>Item 2</td></tr> 
<tr><td>Item 3</td></tr> 
<tr><td>Item 4</td></tr> 
<tr><td>Item 5</td></tr> 
<tr><td>Item 6</td></tr> 
</tbody> 

我將如何使用CSS選擇器與硒訪問項目4(或真的,我想任何項目)?

回答

16

您可以使用第n個孩子選擇:

#items tr:nth-child(4) {color:#F00;} 

活生生的例子。

但根據文檔它應該。

目前CSS選擇器支持除了在CSS3命名空間中的所有CSS1,CSS2和CSS3選擇器,一些僞類(:第n-的類型,:第n-最後的型:首個類型,::last-of-type,:only-of-type,:visited,:hover,:active,:focus,:indeterminate)和僞元素(:: first-line,:: first-letter,:: selection, ::之前,::之後)。

+0

我還沒有探討過,但在CSS中是不是':nth-​​child()'選擇器從零開始? (我的理解是,第四行將是':nth:child(3)',儘管我完全可能完全錯誤。) – 2010-12-21 22:28:56

+0

嗯,現場示例正常工作。 – Flack 2010-12-21 22:31:45

+1

http://www.w3.org/TR/css3-selectors/#nth-child-pseudo「元素的第一個子元素的索引是1」。 – Flack 2010-12-21 22:35:57

0

是否要按內容選擇(「項目4」)?按位置(第4行)?或者是<tr id="foo">並選擇 tr#foo> td 一個選項?如果它與硒的作品http://jsfiddle.net/Flack/G8QPB/

但不知道:

+1

位置只有不添加ny額外的HTML – wierddemon 2010-12-20 23:06:42

0
selenium.getText("css=table>tbody[id=items]>tr:nth-child(3)>td(3)"); 
0

您可以使用XPath找到它在許多不同的方式,但最簡單的就是:

//td[text()='Item 4']