量角器通过中继器获取元素

时间:2017-09-07 22:28:26

标签: angularjs protractor angularjs-ng-repeat

在浏览器生成后,我在HTML中看到了这一点:

<!-- ngRepeat: (promptId, q) in questions -->

我想获得第一个元素,所以我使用:

  it('add new comment thread', function () {
    element.all(by.repeater('(promptId, q) in questions')).first().click();
  });

但是我收到了一个错误:

  

失败:索引越界。试图访问index:0处的元素,但是   只有0个元素匹配定位器by.repeater(“(promptId,   q)问题“)

这里至少有一个子元素,所以我使用by.repeater不正确吗?

1 个答案:

答案 0 :(得分:1)

一般来说,如果没有看到针对特定应用的特定测试中实际发生的情况,很难回答这样的问题。

首先,请注意,即使没有转发器元素,此评论也会存在

这可能是一个&#34;计时问题&#34;,等待元素的存在有助于

var prompt = element.all(by.repeater('(promptId, q) in questions')).first();
var EC = protractor.ExpectedConditions;

browser.wait(EC.presenceOf(prompt), 5000);
prompt.click();

// TODO: your expectation here

当然,当您尝试单击元素并且转发器实际上包含/提供数据时,请确保您位于预期的页面上。