expect-webdriverio icon indicating copy to clipboard operation
expect-webdriverio copied to clipboard

Error: Snapshot service is not initialized

Open trymeouteh opened this issue 4 months ago • 0 comments

How does one import the snapshot service from the expect-webdriverio package into your test? I tried the following and I still get the following error in the terminal. Am I doing this wrong or is the snapshot service broken?

$node test
file:///home/john/Desktop/webdriverio/node_modules/expect-webdriverio/lib/matchers/snapshot.js:53
        throw new Error('Snapshot service is not initialized');
              ^

Error: Snapshot service is not initialized
    at toMatchSnapshotHelper (file:///home/john/Desktop/webdriverio/node_modules/expect-webdriverio/lib/matchers/snapshot.js:53:15)
    at Object.toMatchSnapshot (file:///home/john/Desktop/webdriverio/node_modules/expect-webdriverio/lib/matchers/snapshot.js:63:12)
    at __EXTERNAL_MATCHER_TRAP__ (/home/john/Desktop/webdriverio/node_modules/expect/build/index.js:2240:22)
    at Object.throwingMatcher [as toMatchSnapshot] (/home/john/Desktop/webdriverio/node_modules/expect/build/index.js:2241:6)
    at file:///home/john/Desktop/webdriverio/test.js:16:39
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)

Node.js v22.12.0

test.js

import { remote } from 'webdriverio';
import { expect, SnapshotService } from 'expect-webdriverio';

const browser = await remote({
	capabilities: {
		browserName: 'firefox',
	},
	services: [SnapshotService],
});

const filePath = 'file:///' + import.meta.dirname + '/test.html';

await browser.url(filePath);

await expect(browser.$('#my-button')).toMatchSnapshot();

await browser.deleteSession();

test.html

<button id="my-button">My Button</button>

trymeouteh avatar Oct 08 '25 02:10 trymeouteh