Visual testing with Nightwatch-vrt: Test passed, element is captures, but no picture is seen

176 views Asked by At

I installed nightwatch-vrt locally in my project. Npm showed me multiple vulnerities which I ignored. I created a nightwatch.vrt.conf.js with the following content:

const path = require('path');
const baseConfig = require('./nightwatch.conf.js');

const config = {
    ...baseConfig,
    custom_commands_path: ['node_modules/nightwatch-vrt/commands'],
    custom_assertions_path: ['node_modules/nightwatch-vrt/assertions']
};

function generateScreenshotFilePath(nightwatchClient, basePath, fileName) {
    const moduleName = nightwatchClient.currentTest.module,
        testName = nightwatchClient.currentTest.name;
 
    return path.join(process.cwd(), basePath, moduleName, testName, fileName);
};

config.test_settings.default.globals = {
    "visual_regression_settings": {
        "generate_screenshot_path": generateScreenshotFilePath,
        "latest_screenshots_path": "vrt/latest",
        "latest_suffix": "",
        "baseline_screenshots_path": "vrt/baseline",
        "baseline_suffix": "",
        "diff_screenshots_path": "vrt/diff",
        "diff_suffix": "",
        "threshold": 0.5,
        "prompt": false,
        "always_save_diff_screenshot": true
    }
}

module.exports = config;

My test (simple, just to see if it works) looks like:

module.exports = {

    tags: ['x'],

    'visual testing':function(browser) {
        browser
            .url('https://www.kraeuter-und-duftpflanzen.de')
            .maximizeWindow()
            .assert.visible('.header-main')
            .pause(1000)
            .assert.screenshotIdenticalToBaseline('.header-main')
            //.saveScreenshot('./tests_output/image.png')
            .end();
    }
}

Now the test passes, no assertions failed, a folder is created and the file is correctly named placed there, but I can only see an field with checkerboard pattern (like the transparent background in vector graphics) in the size of the captured element. Before the test report messages like this are shown:

[32644:26476:0414/082519.134:ERROR:device_event_log_impl.cc(214)] [08:25:19.134] 
USB: usb_device_handle_win.cc:1049 Failed to read descriptor from node connection: 
Ein an das System angeschlossenes Gerõt funktioniert nicht. (0x1F)

If I let Nightwatch take a screenshot itself, it is displayed correctly. Does anyone know, where's the mistake?

1

There are 1 answers

0
C. Cuba On

it seems that this package is broken and not updated for a very very long time. I advise you to update to this one https://www.npmjs.com/package/@bbc/nightwatch-vrt