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

Protractor get elements by repeater

我在 HTML 中看到它生成后,在浏览器中:

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

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

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

但是我得到一个错误:

Failed: Index out of bound. Trying to access element at index: 0, but there are only 0 elements that match locator by.repeater("(promptId, q) in questions")

这里明明至少有一个子元素,我是不是用错了by.repeater?

一般来说,如果不了解您的特定应用程序的特定测试中实际发生的情况,很难回答这样的问题。

首先,请注意即使没有转发器元素,这条评论也会出现


这可以是 "timing problem",等待元素的存在帮助

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

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