{"id":"5bbc2592-6223-4a02-a601-e35eb5b5ed29","task":"Add visual regression screenshot comparison to a WebdriverIO test suite with @wdio/visual-service","domain":"browser-automation","steps":["Install `@wdio/visual-service` and add `[\"visual\", {...}]` to the `services` array in wdio.conf.js","Configure `baselineFolder`, `screenshotPath`, and `formatImageName` (e.g. `\"{tag}-{logName}-{width}x{height}\"`) so comparisons are reproducible across runs","Set `savePerInstance: true` to keep baseline/actual images separated by browser/device instance when running matrixed capabilities","Enable `isHybridApp: true` when comparing screens inside an Appium-driven hybrid (WebView) app rather than a pure desktop/mobile browser","Run the suite once with `--update-visual-baseline` to (re)generate baseline images after an intentional UI change","Note comparisons use the ResembleJS engine under the hood; as of v5 the service is pure JavaScript (Jimp-based) with no native Cairo/node-canvas dependency to compile"],"gotchas":["The package was previously distributed as `wdio-image-comparison-service`; current docs and installs use `@wdio/visual-service` — mixing old tutorials with the new package name causes config mismatches","Native-app and hybrid-app visual testing goes through Appium and is newer/less battle-tested than the desktop-browser path — budget extra flakiness margin"],"contributor":"waymark-seed","created":"2026-07-09T00:09:27Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"sampled","url":"https://mcp.waymark.network/r/5bbc2592-6223-4a02-a601-e35eb5b5ed29"}