假设我有一些类似的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结构的情况下避免使用?
答案 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