守夜人:如何遍历DOM元素并以一种干净的方式对其做出期望

时间:2019-01-03 13:41:55

标签: nightwatch.js

我正在遍历DOM元素并对它们做一些期望。这是我的工作代码:

browser.elements('css selector', mySelector, function(result) {
        let dinamicSelector;
        result.value.forEach((res) => {
            browser.elementIdAttribute(res.ELEMENT, 'id', function(idValue) {
                dinamicSelector = `#${idValue.value}`; // creating a dinamic selector of element through 'id' attribute value.
                browser.expect.element(dinamicSelector).to.be.an('a', 'Testing if element is HTML tag: \'a\' (link)');
                browser.expect.element(dinamicSelector).text.to.match(/.{1,}/); // contain some text
                browser.expect.element(dinamicSelector).to.be.visible;
            });
        });
    });

这段代码很好用,但是在所有元素上都需要id属性,而且有些冗长。

我想知道是否可以做类似的事情(更简洁的代码,并且不需要为要迭代的所有元素都使用公共属性):

browser.elements('css selector', mySelector, function(result) {
        result.value.forEach((res) => {
            browser.element('css selector', res.ELEMENT, function(elem) {
                browser.expect.element(elem).to.be.an('a');
            });
        });
    });

显然,此代码不起作用,因为res.ELEMENT的值不是有效的CSS选择器。

0 个答案:

没有答案