Привет, у меня есть следующий HTML-код для переключателей. Я пытаюсь получить список дочерних элементов для родительского элемента с помощью by.model, перебирать их и выбирать переключатели. Я пробовал следующий код, но он говорит, что элемент не найден
var drilldownRadios = element(by.model('filterParameters.rptGrping')).$$("md-radio-button");
HTML-код из приложения
<md-radio-group layout = "row" ng-model = "filterParameters.rptGrping" class = "ng-pristine ng-valid _md layout-row ng-not-empty ng-touched" role = "radiogroup" tabindex = "0" aria-invalid = "false" aria-activedescendant = "radio_2722" style = "">
<md-radio-button value = "National" id = "radio_2720" role = "radio" aria-checked = "false" aria-label = "National">
<div class = "md-container" md-ink-ripple = "" md-ink-ripple-checkbox = "">
<div class = "md-off"></div>
<div class = "md-on"></div>
</div>
<div ng-transclude = "" class = "md-label">
<filtertext class = "ng-scope">National</filtertext>
</div>
</md-radio-button>
<!-- ngIf: !$ctrl.reportInfo.authRoleClasses.studentInfo -->
<md-radio-button ng-if = "!$ctrl.reportInfo.authRoleClasses.studentInfo" ng-click = "$ctrl.setSelectedStates()" class = "stateRadio ng-scope md-checked" value = "State" role = "radio" tabindex = "0" id = "radio_2722" aria-checked = "true" aria-label = "California" style = "">
<div class = "md-container" md-ink-ripple = "" md-ink-ripple-checkbox = "">
<div class = "md-off"></div>
<div class = "md-on"></div>
</div>
<div ng-transclude = "" class = "md-label">
<filtertext class = "ng-binding ng-scope">California</filtertext>
</div>
</md-radio-button>
<!-- end ngIf: !$ctrl.reportInfo.authRoleClasses.studentInfo -->
<!-- ngIf: $ctrl.reportInfo.authRoleClasses.studentInfo -->
<!-- ngIf: !$ctrl.reportInfo.authRoleClasses.studentInfo -->
<md-radio-button value = "District" ng-click = "$ctrl.setSelectedStates()" ng-if = "!$ctrl.reportInfo.authRoleClasses.studentInfo" class = "ng-scope" role = "radio" tabindex = "0" id = "radio_2723" aria-checked = "false" aria-label = "California and District(s)" style = "">
<div class = "md-container" md-ink-ripple = "" md-ink-ripple-checkbox = "">
<div class = "md-off"></div>
<div class = "md-on"></div>
</div>
<div ng-transclude = "" class = "md-label">
<filtertext class = "ng-binding ng-scope">California and District(s)</filtertext>
</div>
</md-radio-button>
<!-- end ngIf: !$ctrl.reportInfo.authRoleClasses.studentInfo -->
</md-radio-group>
@FlorentB. Я получил результат в консоли, но он показывает только html-код для первых двух вариантов радио, National и California, когда я расширяю код
@Vin "District" может отсутствовать, если оператор ng-if отфильтровывает его.
@JstnPwll, вы правы, есть два набора элементов с одинаковыми родительскими и дочерними именами, за исключением одного изменения в классе, затронутом ng, в одном из элементов. используя это, я могу найти элемент .ng-touched[ng-model = "filterParameters.rptGrping"] md-radio-button
но я пытаюсь использовать этот var drilldownRadios = element(by.css(".ng-touched[ng-model='filterParameters.rptGrping']")).$("md-radio-button");, но когда я запускаю сценарий как drilldownRadios.count().then(function(drillcnt), я получаю .count не является функцией. Есть идеи, как это попробовать. Я хочу найти все дочерние элементы для данного родительского элемента.
Вы должны использовать count() на element.all(). element(by.css(".ng-touched[ng-model='filterParameters.rptGrping']")).$$("md-radio-button").count()



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


element.all возвращает массив объектов с modelfilterParameters.rptGrping
var drilldownRadios = element.all(by.model('filterParameters.rptGrping')).$$("md-radio-button");
drilldownRadios.then(function(arrayElements){
console.info(arrayElements.length);
});
вы получаете результат, запустив
document.querySelector('[ng-model = "filterParameters.rptGrping"]')в консоли вашего браузера?