Javascript 获取使用WebdriverIO v5显示的元素数

Javascript 获取使用WebdriverIO v5显示的元素数,javascript,selenium,selenium-webdriver,webdriver-io,Javascript,Selenium,Selenium Webdriver,Webdriver Io,我尝试使用WebDriverioV5和Javascript获取具有特定标记名的元素数。 console.log()正在打印所有元素,但存储元素数的变量始终为0。我错过了什么 confirmSearchingResultPageHasOnlyTenElements() { this.searchBox.waitForEnabled(8000, false); this.searchBox.setValue('xyz'); this.searchBut

我尝试使用WebDriverioV5和Javascript获取具有特定标记名的元素数。
console.log()
正在打印所有元素,但存储元素数的变量始终为0。我错过了什么

confirmSearchingResultPageHasOnlyTenElements() {
        this.searchBox.waitForEnabled(8000, false);
        this.searchBox.setValue('xyz');
        this.searchButton.waitForClickable({ timeout: 8000 });
        this.searchButton.click();
        var results = browser.findElements("tag name", 'article').values.length;
        console.log(results)
        expect(results).to.be.equal(10);
        results[3].click();
    }

您正在使用
findElements
这将返回具有“标记名”的WebElement列表:“article”


您可以检查每个元素
element.isDisplayed()并计数。

如果尚未升级到最新版本的WebDrivero(v6),请升级到最新版本

您可以这样做:

const elements = $$('article')
// expect lib waits for assertion to pass
// in this case it waits for elements to have length 3
expect(elements).toBeElementsArrayOfSize(3) // there are exactly 3 `article` elements
// or expect(elements).toBeElementsArrayOfSize({ get: 3 }) // 3 or more `article` elements

expect(elements).toBeVisible() // make sure all the article elements are visible

我是这样做的:get results(){return$$(“[class='productItem\uu name']”;}confirmSearchingResultPageHasOnlyElements(){this.results.values.length;expect(this.results.length).to.be.lessThan(11);}我相信这是v4?它已经几年没有得到支持和维护了。考虑升级到V6!它是v5,但我必须将它升级到v6