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