2

I want to assert with NightwatchJS if all elements of a given class name are visible or not. So something along those lines:

module.exports = {
    //some tests

    'page changes to English': (browser) => {
        browser.click('label[for="switch-language"]').pause(1000);
        browser.elements('css selector', '.fr', results => {
            for (let i = 0; i < results; ++i) {
                browser.expect.element(results[i]).to.be.visible;
            }
        });
    }
};

But after test completion, I get as output that No assertions ran.

fxlemire
  • 874
  • 9
  • 21

1 Answers1

4

Thanks to Juhi Saxena's answer on the following thread, I was able to figure out the answer to my problem. Here is my code for anyone who might encounter the same difficulty:

module.exports = {
    //some tests

    'page changes to English': browser => {
        browser.click('label[for="switch-language"]').pause(1000);
        browser.elements('css selector','.fr', areDisplayed.bind(null, browser, false));
        browser.elements('css selector','.en', areDisplayed.bind(null, browser, true));
    }
};

function areDisplayed(browser, expected, elements) {
    elements.value.forEach(element => {
        browser.elementIdDisplayed(element.ELEMENT, result => {
            browser.assert.equal(result.value, expected);
        });
    });
}
Community
  • 1
  • 1
fxlemire
  • 874
  • 9
  • 21