Kiểm định Stealth cho Playwright
Kiểm tra ngay trên đối tượng Page có sẵn của Playwright/Puppeteer để biết dấu vết (fingerprint) của trình duyệt tự động có nhất quán hay không, kèm điểm số.
Lập trìnhTrung cấp★ 237⑂ 0Điểm AI 9/10Cập nhật lần cuối: 6 thg 8, 2026
Làm được gì
- Dùng
liarjsnhư một thư viện, gọicheckPage(page)trên bất kỳ đối tượng cóevaluate()— Playwright và PuppeteerPageđều hợp lệ — nên đo chính bộ cấu hình thật: launch flags, plugin, proxy. - Phát hiện các lỗi đặc trưng của môi trường tự động:
navigator.webdrivercòn bật, tokenHeadlessChrometrong UA, Web Worker khai báo khác main thread, API bị patch mất[native code], WebGL và WebGPU báo hai GPU khác nhau, thiếuwindow.chrome, codec H.264. - Trả về
{ score, label, checks[], client, server, meta }để viết assertion trực tiếp trong test suite. - Với trình duyệt đã chạy sẵn ngoài tiến trình test, gắn qua CDP:
npx liarjs@0.3 --cdp http://127.0.0.1:9222. - Chỉ đo lường, không sửa trình duyệt và không kèm kỹ thuật né tránh.
Phù hợp với ai
- Kỹ sư QA/automation vận hành hệ thống E2E hoặc thu thập dữ liệu bằng Playwright, Puppeteer, Selenium.
- Người muốn đo thực tế hiệu quả của stealth plugin thay vì phỏng đoán.
- Nhóm muốn đưa ngưỡng chất lượng fingerprint thành một bài kiểm tra hồi quy trong CI.
Ví dụ sử dụng
- Assertion trong test: gọi
checkPage(page)rồi yêu cầu số checkstatus === 'bad'bằng 0 để chặn hồi quy stealth. - Kiểm tra bản Chromium tự build: chạy
./chrome --remote-debugging-port=9222 &rồinpx liarjs@0.3 --cdp http://127.0.0.1:9222. - Môi trường mạng nội bộ: dùng
--offlineđể chỉ chạy 32 check tầng JavaScript, không gửi request ra ngoài; hoặc trỏ--endpointvề Worker tự triển khai.
· · · Hướng dẫn cài đặt · · ·
Dùng thử ngay, không cần cài
Dán đoạn dưới vào Claude là dùng được skill này mà không cần cài đặt.
Hãy đọc hướng dẫn trong tệp này và làm theo để giúp mình: https://raw.githubusercontent.com/liarjsdev/liarjs-skills/HEAD/skills/playwright-stealth-verify/SKILL.md Mình muốn: (viết việc bạn cần ở đây)
Nếu Claude không mở được liên kết, hãy mở liên kết và copy nội dung vào rồi dán.
↓ Thấy hữu ích thì tải ZIP bên dưới và cài. Sau đó skill tự chạy, không phải dán lại mỗi lần.
Cài vào ứng dụng Claude (không cần terminal)
- Tải tệp ZIP bằng nút bên dưới.
- Trong Claude, mở Settings → Capabilities và bật 'Code execution and file creation'. (chỉ một lần)
- Vào Customize → Skills → + → 'Upload a skill' rồi tải tệp ZIP lên.
Cài vào Claude Code
Để Claude làm — dán câu dưới đây vào Claude Code
Hãy cài skill mình tìm thấy trên Claude Skill Mart. Copy thư mục skills/playwright-stealth-verify từ repo GitHub liarjsdev/liarjs-skills vào ~/.claude/skills/playwright-stealth-verify/ của mình. Sau khi cài xong, cho mình biết skill này làm được gì trong một câu.
Cài bằng lệnh thủ công
git clone https://github.com/liarjsdev/liarjs-skills.git /tmp/liarjs-skills && mkdir -p ~/.claude/skills && cp -r /tmp/liarjs-skills/skills/playwright-stealth-verify ~/.claude/skills/⚠ Đây là skill do người khác tạo. Hãy kiểm tra repo gốc trước khi cài.
- Kiểm tra Node.js phiên bản 22 trở lên:
node -v. - Clone repo skill:
git clone https://github.com/liarjsdev/liarjs-skills.git - Sao chép skill vào thư mục skill của Claude:
mkdir -p ~/.claude/skills && cp -r liarjs-skills/skills/playwright-stealth-verify ~/.claude/skills/ - Khởi động lại Claude Code và thử yêu cầu: "kiểm tra fingerprint của trình duyệt headless của tôi".
- Nếu dùng dạng thư viện, trong project test chạy:
npm install --save-dev liarjsđể ghim phiên bản vào lockfile. - Muốn thử nhanh bằng CLI mà không cài gì:
npx liarjs@0.3. - Nếu chính sách bảo mật không cho gọi ra ngoài, thêm cờ
--offlinehoặc tự host endpoint và dùng--endpoint.
Xem mã nguồn trên GitHub ↗Giấy phép: MIT