Я не могу обнаружить атрибут "checked" на переключателе.
У меня есть две кнопки-переключатели: Radio Buttons
Это атрибуты элемента:
<input type="radio" ng-change="logConsent(true)" ng-model="xxxConsent" value="true" id="xx_Summary_Radio_Consent_Yes" name="consent" class="ng-valid ng-dirty">
а также
<input type="radio" ng-change="logConsent(false)" ng-model="x2Consent" value="false" id="x2_Summary_Radio_Consent_No" name="consent" class="ng-valid ng-dirty">
Используя Selenium webdriver, element.attribute('checked')
всегда возвращает nil. Я не понимаю, как проверить, включено ли оно или включено или нет. Я попытался проверить изменения в проверке Chrome: атрибуты не изменяются до и после проверки переключателей. Может кто-нибудь помочь мне проверить это?
Также модераторам/пользователям :: Я не могу сопоставить другие проблемы с "переключателем" и ответы на мои вопросы в StackOverflow, хотя я вижу много таких вопросов. Вот почему я поднял отдельный вопрос.
Привет, я вижу, что HTML имеет атрибуты значений.
Они должны быть чем-то вроде использования директивы event, чтобы подсчитать количество кликов и прочитать значение атрибута true и false и создать историю, о которой вы говорите.
Я считаю, вы можете попробовать это - настроить прослушиватель событий для ng-dirty? или в зависимости от того, что оно вызывает. Проконсультируйтесь с разработчиком, они должны быть в состоянии помочь. на основе событий triggerd вы можете обнаружить, что щелчок работал хорошо - по крайней мере в соответствии с тем, что вы описываете. Здесь, если вы можете прочитать значение true false, вы обнаруживаете событие и значение атрибута узла HTML - это подтвердит щелчок. Хотя вы точно не проверяете проверенный атрибут.
Согласно предоставленному HTML-коду, нет проверенного атрибута, но вы пытаетесь его восстановить. Именно по этой причине он дает вам нулевые значения. Я надеюсь, что в соответствии с HTML при наличии атрибута "value" с True для одного и False для другого. Так что я ожидаю, что отмеченная радиокнопка имеет value = "Истина", поэтому попробуйте значение атрибута value.
В Java мы можем попробовать, как показано ниже
myWebElement.getAttribute("value"); //this retrieve true or false
// or we can try like below also
if(myWebElement.isEnabled() ==true){
//my elemented is in selected state
}
Спасибо, Мурали
ng-valid ng-valid-required
:: наng-valid ng-valid-required ng-dirty
. Но я заметил, что, как только мы попробуем нажать «да» и «нет», оба изменят состояние, но не обновляют его до исходного состояния. Какое это имеет отношение к проверенному свойству? [В конце они оба нг грязные]