...
я естьGWT приложение, для которого я пытаюсь написать несколько тестов, используяСелен.
Я использую XPath для определения элементов на странице для тестов. С помощьюid
не будет работать какid
значения автоматически генерируются GWT и могут изменяться. Все стало хорошо, когда я понял, что могу найти кнопки по их ярлыкам следующим образом:
//button[.='OK']
Однако, когда я начал выполнять несколько тестов, у меня начались проблемы. Я понял, что проблема в том, что все разные «страницы» приложения GWT, сгенерированные Javascript, остаются в HTML в скрытом виде.<div>
элементы. Это означало, что мои тесты Selenium иногда нажимали скрытые кнопки вместо кнопки, видимой в текущем представлении.
Изучение HTML споджигателькажется, что GWT скрывает<div>
элементы путем добавленияdisplay: none
к ихstyle
приписывать. Это означает, что я могу найти все скрытые кнопки ОК следующим образом:
//div[contains(@style,'display: none')]//button[.='OK']
Это найдет все скрытые кнопки ОК, т.е. кнопки, у которых есть предок<div>
который скрыт, имеяdisplay: none
вstyle
.
Мой вопрос: как я могу использовать XPath, чтобы найти только видимые кнопки ОК? Как мне найти кнопки, которые не имеют предка<div>
элементы сdisplay: none
вstyle
?