Your Playwright tests, checked by Delta-QA. One line per page to check.
@delta-qa/vision sends Delta-QA every page your Playwright tests check. Delta-QA compares it with its baseline element by element and tells you which element changed. Your regression tests written in code and your scenarios recorded without code live in the same workspace: same baselines, same review, same report.
The Vision SDK is first available in early access: contact us to use it on your Playwright tests.
Three steps in your tests
- Create an API key in your Delta-QA workspace and store it in a CI secret. The SDK reads it from
DELTAQA_API_KEY; the workspace is the key's. - Add a check where your test must verify the page:
vision.check("Payment"). Its name matches it with its baseline. - Push. On the first run, every test is "New": its first screenshot becomes the baseline. On the second, with the site unchanged, no difference is reported.
import { test } from "@playwright/test";
import { Vision } from "@delta-qa/vision";
const vision = new Vision(); // reads DELTAQA_API_KEY
test("Checkout", async ({ page }) => {
await vision.open(page, { id: "checkout", name: "Checkout" });
await page.goto("https://shop.example.com/checkout");
await vision.check("Payment");
await vision.close(); // fails the test on an unreviewed difference
});The SDK exposes only settings Delta-QA applies: none is accepted without effect. The tag and the reference tag are optional; without them, the SDK infers them.
An element-by-element comparison, not pixels
For each check, the SDK sends the page (its HTML, the viewport) and the resources the browser loaded. Delta-QA reopens the page and compares its elements with the baseline's, like a scenario step: the report says which element changed — the "Pay" button, blue then green — not a pixel area.
An unreviewed difference fails the Playwright test, and the CI log gives the batch link. You open the step, read the report and decide: "Intended" or "Bug".
Each resource is recognised by its hash: a resource your workspace already has is never sent again. On a suite's second run, with the site unchanged, only the HTML and the hashes leave.
One baseline per branch, no automatic merge
- The tag is inferred from your git branch or the CI, and the reference tag from the PR's target, otherwise
main. A new branch is compared withmainfrom its first run, and the batch shows "compared with main". - "Intended" applies to the tags you tick, "this tag only" by default: other branches see nothing change.
- A test's history filters by environment and by tag; any scan can be set as the baseline, for the tags you tick.
- The tests of one CI run form a batch, shared by machines running in parallel; the batch list reads like your CI.
Questions about the Vision SDK
Which frameworks does the Vision SDK cover?
Do I have to rewrite my Playwright tests?
What data does the SDK send?
Do my no-code scenarios change?
Can I use it from another language?
Have Delta-QA check your Playwright tests
To use Vision, contact us: it is first available in early access. Tell us which tests you want checked, and we open your access.