我正在使用Selenium IDE为我的网站编写测试,而我在使用previous-sibling点击按钮时遇到了硒
<td>
<div class="btn-group">
<button class="btn btn btn-danger block" title="Warning, Delete" name="delete" type="button">
<button class="btn btn btn-default block" title="View History" name="history" type="button">
<button class="btn btn btn-default block" title="View Settings" name="settings" type="button">
<button class="btn btn btn-default block" name="device" type="button">
<span class="glyphicon glyphicon-pencil"/>
Arcade Reader
</button>
</div>
</td>
我的路径
xpath=//button[contains(.,'Arcade Reader')]/../preceding-sibling::button[@name='settings']
答案 0 :(得分:43)
由于所有按钮位于同一级别,因此您无需升级并使用..
:
//button[contains(.,'Arcade Reader')]/preceding-sibling::button[@name='settings']
答案 1 :(得分:2)
我也喜欢从上到下构建定位器,如:
//div[contains(@class,'btn-group')][./button[contains(.,'Arcade Reader')]]/button[@name='settings']
这很简单,因为我们只使用btn-group
搜索button[contains(.,'Arcade Reader')]
并获取button[@name='settings']
这只是构建xPath定位器的另一种选择
搜索包装器元素有什么好处:你可以通过方法返回它(例如在java中),只需构建selenium结构,如:
getGroupByName("Arcade Reader").find("button[name='settings']");
getGroupByName("Arcade Reader").find("button[name='delete']");
甚至简化更多
getGroupButton("Arcade Reader", "delete").click();