Chuyển đến nội dung
Input · chuột · bàn phím · cuộn

Input chuột và bàn phím chuyển động như người thật

Automation thông thường dịch chuyển con trỏ tức thời và gõ phím với tốc độ của máy. Khi bật humanize, mọi thao tác click, hover, fill, kéo thả và cuộn trong Playwright đều đi qua cùng một luồng mô phỏng người thật: con trỏ di chuyển theo đường cong với gia tốc mượt, gõ từng phím với nhịp tự nhiên và cuộn có quán tính, tất cả được gửi dưới dạng event native trusted.

Có ở mọi gói. Trên gói Pro, click theo tọa độ đi theo chuyển động được ghi lại từ người thật.

Bật lên, giữ nguyên script

from clearcote import launch

browser = launch(fingerprint="seed-123", humanize=True, show_cursor=True)
page = browser.new_page()
page.goto("https://example.com")

page.click("text=Sign in")               # eased curve, then a trusted click
page.fill("#email", "you@example.com")   # focus, then key-by-key typing
page.locator("#password").type("s3cr3t") # locators are humanized too

# a held-button drag (e.g. a slider): the press stays held across the move
x0, y0, x1 = 100, 300, 400               # the handle's start, and where to release it
page.mouse.move(x0, y0); page.mouse.down()
page.mouse.move(x1, y0); page.mouse.up()
browser.close()

Điểm nổi bật

Đường cong, có hiệu chỉnh

Chuyển động đi theo một đường Bézier hơi cong từ vị trí con trỏ trước đó, gồm một chuyển động chính nhanh cộng thêm một lần hiệu chỉnh: đường vận tốc nhiều đỉnh như khi người thật với tay tới mục tiêu.

Event trusted

Input là native, nên event đến với isTrusted được bật thay vì được gửi từ script của trang, và navigator.webdriver vẫn là false.

Gõ phím có nhịp điệu

Từng phím được gõ lần lượt với khoảng nghỉ ngẫu nhiên, dừng lại ở ranh giới giữa các từ và thỉnh thoảng gõ sai rồi sửa lại. Giá trị dài hơn khoảng 200 ký tự được điền nguyên khối để việc điền hàng loạt không bị chậm như rùa.

Kéo thả thật

Nút được nhấn bằng mouse.down() vẫn được giữ trong suốt quá trình di chuyển, nên down, move, up là một thao tác kéo giữ nút thực sự, và locator.dragTo cũng được humanize.

Cuộn có quán tính

Cuộn bằng con lăn chậm dần như con lăn chuột hay trackpad thật, thỉnh thoảng dừng lại để đọc.

Click an toàn, chuyển động nhìn thấy được

Mỗi cú click trusted đều được kiểm tra trước (hiển thị, được bật, ổn định, không bị che), nếu không đạt thì quay về click native. showCursor vẽ con trỏ để bạn có thể theo dõi.

Cách nó tích hợp vào script của bạn

humanize hoạt động ở cấp page (click, hover, type, fill, mouse.*, keyboard.type) và ở cấp locator (click, type, fill, pressSequentially, dragTo), nên script sẵn có được áp dụng ngay mà không cần sửa.

Đừng chồng easing của riêng bạn lên trên. Hãy đặt các điểm mốc (waypoint) và để humanize nội suy giữa chúng: easing tự viết cho từng bước tạo ra các đặc trưng thống kê chuyển động mà input thông thường không bao giờ tạo ra.

Mọi bản build đều tự sinh đường chuyển động: SDK lên kế hoạch cho di chuyển, kéo thả, cuộn và gõ phím, còn click theo tọa độ (mouse.click) đi theo đường của chính engine. Trên gói Pro, những cú click đó theo chuyển động được suy ra từ chuyển động ghi lại của người thật, và trên bản build có giấy phép (Miễn phí với GitHub hoặc Pro) dữ liệu con trỏ được báo cáo với độ trung thực cao hơn. Code của bạn không cần thay đổi gì giữa các bản.

Mọi người dùng nó để làm gì

Trang theo dõi hành vi

Những luồng xem xét cách con trỏ và bàn phím chuyển động, chứ không chỉ nơi chúng dừng lại.

Tương tác kéo thả

Kéo giữ nút hoạt động được, nên slider và kéo thả phản ứng giống như khi thao tác bằng tay.

Quy trình nhiều biểu mẫu

Trang đăng ký, thanh toán và cài đặt được gõ từng ký tự thay vì dán vào trong một event.

Demo và quay màn hình

showCursor giúp các video hướng dẫn tự động dễ theo dõi.

Clearcote được xây dựng cho quyền riêng tư, kiểm thử, nghiên cứu và tự động hóa hợp pháp. Bạn chịu trách nhiệm về cách mình sử dụng nó và về việc tuân thủ điều khoản của các trang web bạn truy cập.

Gói nào có tính năng này

Chuột, gõ phím và cuộn trang giống người thật có ở mọi gói: một tùy chọn khởi chạy trong Python và Node, các lệnh gọi tường minh trong .NET. Trên bản build có giấy phép (miễn phí với GitHub), dữ liệu con trỏ được báo cáo với độ trung thực cao hơn, và trên gói Pro, click theo tọa độ trong Python và Node đi theo chuyển động được ghi lại từ người thật.

So sánh các gói

Câu hỏi thường gặp

Làm sao để chuyển động chuột trong Playwright trông như người thật?

Khởi chạy qua Clearcote SDK với humanize: true (Python: humanize=True). Khi đó các lệnh gọi page.click, fill và mouse sẵn có của bạn sẽ di chuyển và gõ phím theo kiểu người thật, không cần thay đổi gì khác.

Các event có phải là trusted không?

Có. Chúng được gửi dưới dạng native input, nên event.isTrusted là true; không có gì được tổng hợp từ script của trang. (showCursor thêm một lớp overlay hiển thị lên trang, nên chỉ dùng nó cho demo.)

Nó có làm script chậm đi không?

Một chút, giống như người thật thì chậm hơn dịch chuyển tức thời. Các giá trị dài (hơn khoảng 200 ký tự) được điền một lần, nên việc nhập dữ liệu hàng loạt vẫn nhanh.

Tính năng này có trong .NET SDK không?

Có, dưới dạng các lệnh gọi tường minh thay vì một tùy chọn khởi chạy: HumanClickAsync, HumanTypeAsync, HumanPressAsync, HumanScrollAsync, HumanDragToAsync và HumanSelectOptionAsync trên page hoặc locator. Tùy chọn một flag humanize chỉ có ở Python và Node.

Có dùng thư viện di chuyển chuột riêng cùng với nó được không?

Tốt nhất là không. Chồng easing của một thư viện khác lên easing của humanize sẽ tạo ra chuyển động mà cả người thật lẫn input thông thường đều không tạo ra. Hãy đưa cho Playwright các mục tiêu và để humanize lo phần đường đi.

Tìm hiểu sâu hơn trong tài liệu

Tính năng liên quan

Dùng thử Clearcote

Thay thế drop-in cho Playwright & Puppeteer, nhất quán đến tận TLS handshake, với một bản build mã nguồn mở để bắt đầu.

Miễn phí cho một trình duyệt với GitHub. Không cần thẻ.