您好我是selenium IDE的新手,我对如何使用selenium IDE查找特定元素有疑问。
我有以下HTML:
<div id="locator">
<table class = "table-1">
</table>
<div class="something else">
</div>
<table class = "table-1">
<tbody>
<tr>
<th>...</th>
<td>
<div class="adder">....</div>
</td>
</tr>
</table>
</div>
问题是我想在第二个表元素中找到div元素 谁能让我知道怎么做? 提前谢谢。
答案 0 :(得分:0)
使用伪类:nth-of-type
:
driver.FindElement(By.CssSelector("table.table-1:nth-of-type(2) > tbody > tr > td > div.adder"));
如果您使用Selenium IDE,请使用
css=table.table-1:nth-of-type(2) > tbody > tr > td > div.adder
请参阅Selenium IDE documentation。
当然你也可以使用XPath而不是css(http://docs.seleniumhq.org/docs/02_selenium_ide.jsp#locating-by-xpath)。
css选择器定位器支持所有css1,css2和css3选择器 除了css3中的命名空间,一些伪类(:nth-of-type, :nth-last-of-type,:first-of-type,:last-of-type,:only-of-type, :visited,:hover,:active,:focus,:indeterminate)和pseudo elements(:: first-line,:: first-letter,:: selection,:: before,:: after)
答案 1 :(得分:0)
试试这个......
driver.FindElement(By.CssSelector(&#34; div#locator table:nth-of-type(2) div.adder&#34));
答案 2 :(得分:0)
我知道这是旧的,但上面提到的选择器是错误的。 CSS不支持一些伪类和伪元素。下面列出了不受支持的内容。
css=table.table-1:nth-child(2) > tbody > tr > td > div.adder
6.7。 CSS
CSS定位器策略使用CSS选择器来查找页面中的元素。 Selenium支持CSS 1到3选择器语法,除了CSS3名称空间和以下内容:
pseudo-classes pseudo-elements
:nth-of-type ::first-line
:nth-last-of-type ::first-letter
:first-of-type ::selection
:last-of-type ::before
:only-of-type ::after
:visited
:hover
:active
:focus
:indeterminate