使用CSS选择器使用selenium访问特定表行

使用CSS选择器使用selenium访问特定表行,css,selenium,css-selectors,Css,Selenium,Css Selectors,如果我有以下HTML: <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&

如果我有以下HTML:

<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选择器与Selenium结合使用来访问项目4或我想要的任何项目?

是否要按内容选择项目4?在第四排的位置?或者是在选择 trfoo>td
选项?

您可以使用第n个子选择器:

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

但不知道它是否对硒有效

但根据文件,它应该这样做

当前,css选择器定位器支持css3中除名称空间之外的所有css1、css2和css3选择器,一些伪类:第n个类型、:第n个类型的最后一个、:第一个类型、:最后一个类型、:仅类型、:已访问、:悬停、:活动、:焦点、:不确定和伪元素::第一行、::第一个字母、::选择、::之前、::之后


您可以使用xpath以多种不同的方式查找它,但最简单的方法是:

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

您可以尝试通过任何内部文本进行搜索

css=td:contains('Item 4')

发现这一点很有帮助:

仅定位而不添加任何额外的HTMLI没有探讨这一点,但在CSS中:n子选择器不是基于零吗?我的理解是第四排应该是:nth:child3,尽管我可能完全错了。元素的第一个子元素的索引为1。您在哪里找到“:contains”文档?它不在您提供的链接上,当我在浏览器控制台中尝试它时也不起作用,表示它不是有效的选择器。这是不是曾经存在过一段时间,后来又从CSS中删除了?
css=td:contains('Item 4')