Помогите, пожалуйста, решить проблему.
Пытаюсь с помощью Selenium WebDriver проверить, какое состояние у кнопки - атрибута disabled. Применяю для этого метод isEnabled(). Из описания метода: checks for the disabled attribute
Отправлено 06 июня 2016 - 15:53
Помогите, пожалуйста, решить проблему.
Пытаюсь с помощью Selenium WebDriver проверить, какое состояние у кнопки - атрибута disabled. Применяю для этого метод isEnabled(). Из описания метода: checks for the disabled attribute
Отправлено 06 июня 2016 - 17:34
Язык не указан, но осмелюсь предположить, что речь идет о java.
Для решения задачи достаточно убедиться, что у элемента в определенных случаях атрибут disabled='true', а в других 'false' ?
Тогда у элемента можно узнать значение атрибута: element.getAttribute('disabled'), будет возвращать "true", "false", если отсутствует - null.
Если важно убедиться, что над кнопкой недоступны действия, а isEnabled на оба состояния выдает true, можно попробовать такой себе способ: написать метод, который пытается кликнуть по кнопке, и если ловит исключение - то кнопка задизейблена.
Можно скомбинировать обе проверки.
Отправлено 07 июня 2016 - 07:38
Да, язык - Java, забыла указать...
"Для решения задачи достаточно убедиться, что у элемента в определенных случаях атрибут disabled='true', а в других 'false' ?"
Да, именно так.
"Тогда у элемента можно узнать значение атрибута: element.getAttribute('disabled'), будет возвращать "true", "false", если отсутствует - null."
Как я писала выше, element.getAttribute('disabled') тоже почему-то выдаёт в обоих случаях "true"...Поэтому такой способ тоже не подходит :(
В целом, мне нужно дождаться, пока состояние будет disabled="false" . Вроде бы, в этом мне могли бы помочь методы типа
wait.until(ExpectedConditions.attributeToBe(By.className("<button_class_name>"), "disabled", "false")) или
wait.until(ExpectedConditions.elementToBeClickable(By.className("<button_class_name>")))
Но, похоже, оба этих метода основаны на методах getAttribute() и isEnabled(), соответственно, тоже не дают верный результат.
"написать метод, который пытается кликнуть по кнопке, и если ловит исключение - то кнопка задизейблена"
в моём случае это не очень удобно, так как действие "кликнуть по кнопке-словить исключение" придётся делать в каком-то цикле, чтобы имитировать ожидание ожидаемого условия. Но, насколько я понимаю, в моей ситуации это действительно единственный способ...
Отправлено 07 июня 2016 - 09:27
css:
#someElementId:not([disabled*='u']):not(disabled)
:not([disabled*='u']) - исключит те, у которых "disabled='true'", но пропустит "disabled='false'"
:not(disabled) - исключит те, у которых просто "disabled".
Ожидать disabled='false' можно и обратную сторону:
#someElementId[disabled*='false']
0 пользователей, 0 гостей, 0 анонимных