繁体   English   中英

如何获得选择器计数并传递给以后可以使用的变量?

[英]How to I get a count of a selector and pass into a variable I can use later?

我希望得到返回的项目的行数,以便以后可以将过滤器添加到列表中。 然后,我断言过滤后的列表号小于总数。

我尝试了多种.perform和.execute安排,并继续遇到未定义的错误。

module.exports = {
    'Verify rows': function (browser) {
        var value_id = 0;
        browser
            .url(browser.launchUrl)
            .waitForElementVisible('body', 20000)
            .pause(4000)
            .verify.visible('div:nth-of-type(2) > form > div > div > div > div')
            .assert.gdGreater('.offering-item-container', 0)
            .execute(function () {
                value_id = document.querySelectorAll('.offering-item-container').length;
            })
            .click('#IsGuaranteedToRun')
            .pause(4000)
            .assert.gdLess('#IsGuaranteedToRun', value_id)
    }

};

我在这里找到了答案这有助于我指出正确的方向。 然后,我必须在回调中包括后续步骤。

module.exports = {
    'Verify rows': function (browser) {
        var value_id = 0;
        browser
            .url(browser.launchUrl)
            .waitForElementVisible('body', 20000)
            .pause(4000);
            const numElementsPromise = new Promise(resolve => {
                browser.elements('css selector', '.offering-item-container', result => {
                    resolve(result.value.length);
                });
            });

        numElementsPromise.then(result => {
            value_id = result;
            browser
                .pause(4000)
                .verify.visible('div:nth-of-type(2) > form > div > div > div > div')
                .assert.gdGreater('.offering-item-container', 0)
                .click('#IsGuaranteedToRun')
                .pause(4000)
                .assert.gdLess('.offering-item-container', value_id)
                .click('#IsGuaranteedToRun')
                .assert.gdEquals('.offering-item-container', value_id);
        });
  }

};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM