Javascript 量角器-等待多个元素
我正在尝试等待页面上的多个元素,我不知道有多少元素,但至少会有一个。我理解使用以下命令等待单个元素,这很好Javascript 量角器-等待多个元素,javascript,protractor,Javascript,Protractor,我正在尝试等待页面上的多个元素,我不知道有多少元素,但至少会有一个。我理解使用以下命令等待单个元素,这很好 var EC = protractor.ExpectedConditions; browser.wait(EC.presenceOf(element(by.css("h3[title='Test Form']"))), 10000); expect(element(by.css("h3[title='Test Form']")).isPresent()).toBeTruth
var EC = protractor.ExpectedConditions;
browser.wait(EC.presenceOf(element(by.css("h3[title='Test Form']"))), 10000);
expect(element(by.css("h3[title='Test Form']")).isPresent()).toBeTruthy();
我想稍微修改一下,等待多个元素,所以尝试了下面的方法(将.all添加到元素)
不幸的是,当我尝试这一点,我得到了
Cannot read property 'bind' of undefined
在此方面的任何帮助都将不胜感激
p、 普罗特拉克和它的怪癖 需要传入单个元素(ElementFinder
)
您需要等待一个自定义的预期条件。如果我理解正确,您需要等待N个元素出现。以下是您如何做到这一点:
function waitForCount (elementArrayFinder, expectedCount) {
return function () {
return elementArrayFinder.count().then(function (actualCount) {
return expectedCount === actualCount; // or <= instead of ===, depending on the use case
});
};
};
非常感谢。事实上,我用了一种稍微不同的方式,因为我不知道会有多少元素,只知道会有一个。我将使用以上我相信在未来,所以已经节省了我问另一个问题!
function waitForCount (elementArrayFinder, expectedCount) {
return function () {
return elementArrayFinder.count().then(function (actualCount) {
return expectedCount === actualCount; // or <= instead of ===, depending on the use case
});
};
};
var forms = element.all(by.css("h3[title='Test Form']"));
browser.wait(waitForCount(forms, 5), 10000);