@ codepress/ interactions- playwrit
运行此程序的 Playwright 助手 代码Press 交互 UI检查被测试的一页:重叠元素,内容溢出其框外,水平页面卷轴,控制无法到达,小自带目标(touch),被剪接的文本和被打碎的图像.
npm install --save-dev @codepress/interactions-playwright
import { test } from "@playwright/test";
import { expectNoFindings, findIssues } from "@codepress/interactions-playwright";
test("checkout has no layout findings", async ({ page }) => {
await page.goto("/checkout/42");
await expectNoFindings(page, { routeSegments: ["checkout"] });
});
失败列出每个发现的一行: 检查、 元素( 测试 ID, 或结构路径, 如 #cart/div/button 证据和指纹.
2 UI findings on /checkout/42. Pass a fingerprint in ignoreFingerprints to accept one.
"layout.overlap checkout × promo on /checkout/:id @1280x800: overlap_px=3520 … subject_blocked_points=5 … center_blocked subject_text_covered … [590f6922417e2a04f8d6c9341daf02c1]"
发现是指针,不是判断:每个判断都说出所测量的,你来决定它是不是个错误. 排序先放被屏蔽的控件,再覆盖或剪接文本,再放其他的,再放装饰层和无内容的发现(被打碎或被裁剪的图像);它从不掉一个.
API 密码
captureSnapshot(page, options?)→{ body, sha256 }:用SDK的快照行走器一行一行行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一行一.findIssues(page, options?)→Finding[]: 页面上现在的检查, 排序 .expectNoFindings(page, options?): 测试失败findIssues返回任何内容.
选项( 所有选项) :
| 选项 | 默认 | |
|---|---|---|
root | 整个文档 | CSS 子树选择器 |
ignore | 无 | 额外选取子树以忽略; [data-layout-ignore] 永远适用 |
route | 从 URL 中 | 记录在调查结果上并由指纹使用的路由模板 |
routeSegments | [] | 在默认路由模板中保存的正文路径段( 其他成为) :id(中文(简体) ) |
maxElements | 5万块 | 元素限制 |
theme | 页面 prefers-color-scheme | "light", (中文(简体) ), "dark" 或者说 "unknown" 要记录, 对于带有自己主题切换的应用程序( Playwright ) colorScheme 编号 : page.emulateMedia 设置默认值) |
testId | defaultTestIdFilter | (value, element) => string | null: 哪个 data-interaction-id 编号 : data-testid 要记录的值, 作为浏览器 SDK 的 testId 选项。它在页面中运行,所以它必须是自成一体的,就像 page.evaluate callback; 页面没有失败抓取的名称 。 页面确实有一个名称, 例如测试变量叫做 status,或者钩子中的任何其他运行时间出错,在无出错的情况下放下ID,所以在写钩子时检查快照的ID. 写出你的应用程序使用的规则 这样指纹匹配生产,呼叫 globalThis.__codepressInteractions.defaultTestIdFilter(value) 在那里它称之为默认. (value) => value 保存每个身份 |
ignoreFingerprints | [] | (目前接受已知调查结果) |
events | 无 | 协议 v2 事件来运行点击和稳定性检查 |
checks 和阈值 | 见 检测选项 |
指纹在滚动抵消,运行和机器之间是稳定的:它们将检查,路由模板,取景口宽幅带和元素的身份,永远不坐标.
许可证
阿帕奇 - 2.0