量角器通过中继器获取元素
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 包含数据时,请确保您位于预期的页面上。
我在 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 包含数据时,请确保您位于预期的页面上。