Selenium IDE中的css定位器构建器没有获得第一个ID

时间:2012-11-15 08:39:20

标签: css-selectors selenium-ide

假设我有一些类似的HTML:

<div id="container1" class="wrap">
    <div class="somestyle">first content
    </div>
</div>
<div id="container2" class="wrap">
    <div class="somestyle">second content
    </div>
</div>
   .
   .
   .
<div id="containern" class="wrap">
    <div class="somestyle">nth content
    </div>
</div>

使用顶部的Selenium IDE,ID和CSS定位器构建器记录测试, 如果我点击“第一个内容”,我会得到类似的内容:

css=div.somestyle

另一方面,如果我点击从第二个开始的任何其他内容,我得到(我想要的):

css=#container2 > div.somestyle,
   .
   .
   .
css=#containern > div.somestyle

唯一的例外是第一个元素。

为什么?这是一个错误吗?如何在不必重写整个HTML结构的情况下避免使用?

1 个答案:

答案 0 :(得分:1)

由于所有三个容器的类都相同,所以要识别它的记录。它不是。  例如。如果您有三个具有相同名称的复选框,则它将记录

click  | name=vehicle
click  | xpath=(//input[@name='vehicle'])[2]
click  | xpath=(//input[@name='vehicle'])[3]

在您的代码中,所有容器的类都相同。

因此,要识别容器IDE代码将像您提到的那样显示。 首先它将直接显示,将被视为第一个条目。

css=div.somestyle

接下来的条目就像

css=#container2 > div.somestyle,
   .
   .
   .
css=#containern > div.somestyle