Я пишу тесты для моего сайта с помощью Selenium IDE и у меня возникли проблемы с наличием Селена нажмите на кнопку, используя предыдущий-двойники
<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']
Мне также нравится строить локаторы сверху донизу, как:
//div[contains(@class,'btn-group')][./button[contains(.,'Arcade Reader')]]/button[@name='settings']
Это'ы довольно просто, как мы только что поиск БТН-группа
с кнопку[содержит(.,'аркады читатель')] и получить его'кнопка s
[@имя='настройки']`
Что's просто еще один вариант построить в XPath локаторы
Какой профит искать элемент программы-оболочки: вы можете вернуть его методом (например, в Java) и просто строить селен конструкций, таких как:
getGroupByName("Arcade Reader").find("button[name='settings']");
getGroupByName("Arcade Reader").find("button[name='delete']");
или даже упростим более
getGroupButton("Arcade Reader", "delete").click();