Ruby - Selenium Webdriver, AngularJS Radiobutton Невозможно обнаружить атрибут

0

Я не могу обнаружить атрибут "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, хотя я вижу много таких вопросов. Вот почему я поднял отдельный вопрос.

  • 0
    Update :: Элемент меняет класс с - ng-valid ng-valid-required :: на ng-valid ng-valid-required ng-dirty . Но я заметил, что, как только мы попробуем нажать «да» и «нет», оба изменят состояние, но не обновляют его до исходного состояния. Какое это имеет отношение к проверенному свойству? [В конце они оба нг грязные]
Теги:
selenium-webdriver

2 ответа

0
Лучший ответ

Привет, я вижу, что HTML имеет атрибуты значений.

Они должны быть чем-то вроде использования директивы event, чтобы подсчитать количество кликов и прочитать значение атрибута true и false и создать историю, о которой вы говорите.

Я считаю, вы можете попробовать это - настроить прослушиватель событий для ng-dirty? или в зависимости от того, что оно вызывает. Проконсультируйтесь с разработчиком, они должны быть в состоянии помочь. на основе событий triggerd вы можете обнаружить, что щелчок работал хорошо - по крайней мере в соответствии с тем, что вы описываете. Здесь, если вы можете прочитать значение true false, вы обнаруживаете событие и значение атрибута узла HTML - это подтвердит щелчок. Хотя вы точно не проверяете проверенный атрибут.

0

Согласно предоставленному 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

    }

Спасибо, Мурали

  • 0
    Привет Мурали, я осведомлен и проверен с тем же - первым делом на самом деле. Это всегда остается верным для первого и ложным для второго. [Всегда, независимо от того, сколько действий]. Дополнительная информация - кнопка всплывающего окна справа, которую вы видите - отображает совокупную историю нажатия кнопок «да» и «нет» при открытии всплывающего окна. по сути он хранит как-то все действия и время выполненных кликов.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню