量角器:如何使用'by.repeater'选择单选按钮?

时间:2017-04-05 13:59:12

标签: protractor

我试图通过使用“by.repeater”从单选按钮列表中选择一个单选按钮。单选按钮具有ng-repeat属性。我试图通过检索它来点击特定的单选按钮: - element.all(by.repeater(''))。get(i).click(),其中i是我要选择的单选按钮的索引,但未成功选中。

我尝试使用mouseMove()和mouseDown()找到确切的单选按钮,但没有任何效果。我知道我正在找到我要点击的正确的单选按钮,因为当我在上面的element.all .... get(i)值上运行getText()并在控制台上显示它时,标签/文本对应显示正确的单选按钮。

这是我的HTML代码:

<div class="radio ng-scope" ng-repeat="test in tests">
<label class="ng-binding">
<input type="radio" name="test" ng-click="setTest(test)" ng-checked="((test.length == 1 && !type.defaultSelectChoice) || (test.length != 0 && test.defaultSelectChoice))" checked="checked">
Sonia
</label>
</div>
<div class="radio ng-scope" ng-repeat="test in tests">
<label class="ng-binding">
<input type="radio" name="test" ng-click="setTest(test)" ng-checked="((test.length == 1 && !type.defaultSelectChoice) || (test.length != 0 && test.defaultSelectChoice))">
Sammy
</label>
</div>

我想为Sammy选择单选按钮。您会注意到Sonia已经被选中/被选中。我试过 - element.all(by.css('。radio.ng-scope'))。get(1).click()选择Sammy和几个元素变体。所有,但没有任何效果 -

  • element.all(by.repeater('test in tests'))。get(1).click()
  • 元素(by.css('。radio.ng-scope'))。all(by.repeater('type in 。类型))得到(1)。单击();
  • browser.actions()的mouseMove(element.all(by.css( 'radio.ng-范围'))得到(1))上单击()执行();

element.all(by.css('。radio.ng-scope'))。get(1).getText()确实返回Sammy,但是 无法点击与Sammy标签对应的实际单选按钮。还尝试了setAttribute('checked'),但没有运气。

我已经研究了几乎所有关于在Stack Overflow上选择Protractor中的单选按钮的帖子,但还是无法解决这个问题。任何输入将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:0)

您使用的所有定位器都找不到单选按钮。它们都引用父div元素。要查找每个中继器内的单选按钮,请尝试以下代码。

element.all(by.repeater("test in tests")).all(by.css ("input[type='radio']")).get(0).click();
相关问题