0

假设我有一些 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 结构?

4

1 回答 1

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
于 2012-11-22T10:15:27.243 回答