Angularjs 单击不可见的单选按钮

Angularjs 单击不可见的单选按钮,angularjs,selenium,protractor,automated-tests,Angularjs,Selenium,Protractor,Automated Tests,我有一个单选按钮,在检查元素时有一个不可见的输入,这就是我看到的 这是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_c

我有一个单选按钮,在检查元素时有一个不可见的输入,这就是我看到的

这是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>

我怀疑这与我在检查时看不到元素有关。有什么想法吗?

我不知道制作一个(通过UI)不可点击的单选按钮是否是一件好事,但您可以使用component.ts中的jQuery单击它
例如,您可以分配一个类似“radioButton”的ID,然后只添加

$(“#radioButton”)。单击()


在您的
ngOnInit()
上。按钮将被单击,就像用户单击一样。

我不知道制作(通过UI)不可单击单选按钮是否是一件好事,但您可以使用component.ts中的jQuery单击它
例如,您可以分配一个类似“radioButton”的ID,然后只添加

$(“#radioButton”)。单击()

在您的
ngOnInit()
上。按钮将被单击,就像用户单击一样。

尝试此xpath

 element(By.xpath("//div[@class='col-sm-8']//input[@value='COST' and @type='radio']")).click();
试试这个xpath

 element(By.xpath("//div[@class='col-sm-8']//input[@value='COST' and @type='radio']")).click();

E2E测试的目的是要表现得像真正的人类一样。只要你们不能使用UI点击单选按钮,就不可能通过量角器来完成,这是有意义的。可能问题不在于量角器无法单击隐藏按钮,而是在您选择的整个方法中。角度标记是错误的,我已在编辑中将其替换为AngularJS标记。我可以从UI单击单选按钮,这张打开了inspect的图像的目的是显示我在检查时看不到按钮。E2E测试的目的是像真人一样。只要你们不能使用UI点击单选按钮,就不可能通过量角器来完成,这是有意义的。可能问题不在于量角器无法单击隐藏按钮,而是在您选择的整个方法中。角度标记是错误的,我已在编辑中将其替换为AngularJS标记。我可以从UI单击单选按钮,这个打开inspect的图像的目的是显示我在检查时看不到按钮。我认为这是AngularJS而不是AngularJS。我认为这是AngularJS而不是AngularJS。你的看起来很有趣,我不得不对它做一些更改,因为它给了我一个Typescript错误,我所做的是
等待元素(by.xpath(//div[@class='col-sm-8']//输入[@value='COST']并输入[type='radio'])。单击(),它给了我以下错误:InvalidSelectorError:无效选择器:无法找到xpath表达式为//div[@class='col-sm-8']//input[@value='COST']和input[type='radio']的元素,因为出现以下错误:TypeError:未能对“Document”执行“evaluate”:这似乎有效,但我收到了一个错误“元素不可交互”,正如我在检查时没有看到元素所怀疑的那样..对于不可交互的元素有什么想法吗?您可以尝试使用javascript来模拟click().好的,谢谢!既然你的问题基本上解决了,我会竖起大拇指,从那里开始工作。你的问题似乎很有趣,我不得不稍微修改一下,因为它给了我一个Typescript错误,我所做的是
wait元素(by.xpath(//div[@col-sm-8']//input[@value='COST']和input[type='radio'])。单击();
它给了我以下错误:InvalidSelectorError:无效选择器:无法找到xpath表达式为//div[@class='col-sm-8']//input[@value='COST']和input[type='radio']的元素,因为以下错误:TypeError:未能对“Document”执行“evaluate”:这似乎有效,但我收到一个错误“元素不可交互”,正如我在检查时没有看到元素所怀疑的那样..对于不可交互的元素有什么想法吗?你可以尝试javascript来模拟click()。好的,谢谢!因为你的问题基本上解决了,我会竖起大拇指,从那里开始工作。