Есть на форме кнопка которая становится доступной для нажатия, только после того как заполнишь обязательные поля. Решил сделать ожидание используя условие с “isEnabled”, но WebDriver думает что кнопка все равно доступна и нажимает на нее. В результате тест фейлится. Что делать в такой ситуации?
проверять аттрибут disabled == “disabled”, так как кто-то криво сделал ваш сайт. disabled должно быть true или false согласно DOM, но у ваших разработчиков своё собственное мнение
Цитирую разработчиков “Где сказано что согласно DOM disabled должен отдавать параметр false или true. На любую страницу гугла если зайти написано, что если элемент не доступен то ставится, disabled=‘disabled’, если наоборот то его просто нет”.
Но даже если отбросить все споры, isEnabled для меня не актуально теперь?
Проблема была в том, что я использовал “якорь” span? в то время как нужно было использовать button. Если я правильно понял для метода isEnabled() нужно использовать “якорь” который содержит disabled="disabled"
@vmaximv
Если бы вы выложили код страницы, по которому ваш тест работал, то все бы поняли.
А так да, оказывается согласно XHTML disabled должен равняться … чему угодно, главное не быть пустым, тогда он считается disabled. Тоесть, disabled=“disabled”, disabled=1, disabled=“nabrabobra” - это всё правильные записи, которые “правильно” ставят параметр. Значение не важно, важно наличие.
Согласно же HTML5 аттрибут disabled указывается без значения
Урл страницы есть в моем тесте: кому надо, тот открыл ее - посмотрел код и понял.
В ваших же рассуждениях есть одно заблуждение - вы не отличаете attribute от property и не до конца понимаете механику работы WebElement.getAttribute().