Нажмите переключатель, который не отображается - PullRequest
1 голос
/ 19 марта 2019

У меня есть переключатель, который имеет невидимый вход при проверке элемента, это то, что я вижу

When hovering, nothing is shown about the code

Это HTML

<rhr-radio-button element-id="criterion-type" model="$ctrl.criterion.criterionTypeRadio" ng-value="$ctrl.CRITERION_TYPE_COST" required="true" label="procurement.evaluation.criterion.options.criterion_type_cost" class="ng-scope ng-isolate-scope" value="COST"><!-- ngIf: $ctrl.horizontal !== 'true' && !$ctrl.readOnly --><div class="radio ng-scope" ng-if="$ctrl.horizontal !== 'true' &amp;&amp; !$ctrl.readOnly"><label><input type="radio" class="px ng-pristine ng-untouched ng-empty ng-invalid ng-invalid-required" name="criterion-type" ng-value="::$ctrl.value" ng-model="$ctrl.model" ng-required="$ctrl.innerRequired" ng-disabled="$ctrl.disabled" ng-change="$ctrl.onChange()" value="COST" required="required"> <span class="lbl ng-binding" ng-bind="::($ctrl.label | translate) + '&nbsp;'">Price&nbsp;</span><!-- ngIf: $ctrl.showHelpText === 'true' --></label></div><!-- end ngIf: $ctrl.horizontal !== 'true' && !$ctrl.readOnly --><!-- ngIf: $ctrl.horizontal === 'true' && !$ctrl.readOnly --><!-- ngIf: $ctrl.readOnly && $ctrl.value == $ctrl.model --></rhr-radio-button>

Я пробовал все, например:

         await element.all(by.repeater("ng-scope")).all(by.css("input[type='radio']")).get(0).click();

      all(by.tagName('radio.ng-scope')).get(0).click();

       element(by.element-id('rhr-radio-button[element-id=criterion-type]')).click();

Я подозреваю, что это как-то связано с тем, что я не вижу элемент при проверке. Есть идеи?

Ответы [ 2 ]

0 голосов
/ 20 марта 2019

Попробуйте этот xpath.

 element(By.xpath("//div[@class='col-sm-8']//input[@value='COST' and @type='radio']")).click();
0 голосов
/ 19 марта 2019

Я не знаю, хорошо ли делать радио-кнопку с неуправляемым интерфейсом, но вы можете щелкнуть по ней с помощью jQuery в вашем component.ts.
Например, вы можете присвоить идентификатор типа «radioButton», а затем просто добавить

$ ( '# RadioButton'). Нажмите ()

на вашем ngOnInit(). Кнопка будет нажата, как если бы она была нажата пользователем.

...