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);