使用量角器和黄瓜选择单选按钮选项时出错

Error while selecting radio button option using protractor and cucumberjs

本文关键字:单选按钮 选项 出错 选择 黄瓜 量角器      更新时间:2023-09-26

我是角度页面上自动化测试的新手。我正在使用的框架是量角器,但我正在用黄瓜杵打它。

我正在尝试单击单选按钮。这就是元素在 DOM 中的样子:-

<div>
<input class="ng-pristine ng-untouched ng-valid" type="radio" ng-click="setTestOrValid(p)" value="Valid" ng-model="p.testOrValidDisplay" name="341">
Valid
<input class="ng-pristine ng-untouched ng-valid" type="radio" ng-click="setTestOrValid(p)" value="Invalid" ng-model="p.testOrValidDisplay" name="342">
Invalid (Test/Junk)
</div>

以下是我编写的能够单击它的功能:-

sut.browser.findElements(sut.by.css('[ng-click="setTestOrValid(p)"]')).then(function(elements){
  for (i=0; i < elements.length; i++){
    elements[i].getAttribute('value').then(function(value){
      if (value == 'Invalid') {
        elements[i].click();
      }
    })
  }
});

上面的代码抛出了一个错误:-

 TypeError: Cannot read property 'click' of undefined

你能帮我这个吗?

您可以使用CSS选择器一次性访问元素:

var elm = $("input[type=radio][value=Invalid]");
elm.click();

或者,您可以按型号和filter()过滤所有单选按钮:

var elm = element.all(by.model("p.testOrValidDisplay")).filter(function(elm) {
    return elm.getAttribute("value").then(function (value) {
        return value === "Invalid";
    });
}).first();
elm.click();