🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

@testivai/witness-selenium

Package Overview
Dependencies
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@testivai/witness-selenium

Selenium WebDriver adapter for TestivAI Witness — local-first visual regression with pixel + DOM comparison

latest
Source
npmnpm
Version
0.3.0
Version published
Maintainers
1
Created
Source

@testivai/witness-selenium

Selenium WebDriver adapter for TestivAI Witness — local-first visual regression testing with pixel + DOM comparison. No cloud account, nothing uploaded.

Shares baselines, tolerances, the HTML report, and the PR approval flow with every other TestivAI adapter (Playwright, WebdriverIO, Python, Java) through one on-disk contract.

Install

npm i -D @testivai/witness-selenium @testivai/witness selenium-webdriver

Use

const { Builder } = require('selenium-webdriver');
const { testivai } = require('@testivai/witness-selenium');

const driver = await new Builder().forBrowser('chrome').build();
await driver.get('http://localhost:3000');
await testivai.witness(driver, 'homepage');
await driver.quit();

Then compare against baselines and render the report:

npx testivai report            # add --fail-on-diff in CI
npx testivai approve --all     # promote current captures to baselines

Works inside any runner (Jest, Mocha, plain Node scripts) — the adapter only needs the driver object.

Options

await testivai.witness(driver, 'pricing', {
  ignoreSelectors: ['.live-chat', '[data-testid="ad"]'], // hidden from pixels AND the DOM snapshot
  variant: 'firefox',       // baselines keyed as pricing__firefox
  stabilize: false,         // skip animation-freeze + font wait for this capture
  skipDom: true,            // pixel diff only, no noise hint
});

Global settings (thresholds, tolerances, ignoreSelectors) live in .testivai/config.json — see the main docs.

Full-page screenshots

  • Chrome / Edge — true full-page capture via CDP (captureBeyondViewport), the same mechanism Playwright uses. Automatic; nothing to configure.
  • Firefox / Safari — the Selenium JS bindings expose no full-page API, so captures are viewport-sized. Set the window to the size you want compared; runs are consistent either way. (The Python and Java TestivAI adapters do full-page on Firefox via its native API.)

Stabilized captures

Before every capture (default on): CSS animations/transitions complete instantly at their final state, the caret is hidden, smooth scrolling is disabled, and web fonts are awaited (bounded 10s). These are the top causes of flaky visual diffs.

License

MIT

Keywords

selenium

FAQs

Package last updated on 31 Jul 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts