在selenium ide上找到一个元素

时间:2014-03-04 13:43:03

标签: html selenium

您好我是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元素 谁能让我知道怎么做? 提前谢谢。

3 个答案:

答案 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