我有一个单选按钮,它在检查元素时具有不可见的输入,这就是我看到的
这是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' && !$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) + ' '">Price </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();
我怀疑这与我在检查时看不到元素有关。有什么想法吗?
答案 0 :(得分:0)
我不知道(通过UI)使不可单击单选按钮是否是一件好事,但是您可以在component.ts中使用jQuery单击它。
例如,您可以添加一个“ radioButton”之类的ID,然后只需添加
$('#radioButton')。click()
在您的ngOnInit()
上。该按钮将被单击,就像被用户单击一样。
答案 1 :(得分:0)
尝试这个xpath。
element(By.xpath("//div[@class='col-sm-8']//input[@value='COST' and @type='radio']")).click();