Page Interaction

Page Interaction cung cấp các thao tác cơ bản để tương tác với trang web như click, nhập text, điều hướng URL, và quản lý clipboard.

Get Clipboard

Lấy nội dung từ clipboard

Lấy nội dung hiện tại từ clipboard của hệ thống. Hữu ích để lấy dữ liệu đã copy từ các ứng dụng khác.

Tham số:
Debug Port: Port kết nối trình duyệt (bắt buộc)
Tab Index: Index của tab cần thao tác (0-based, bắt buộc)
Ví dụ:
{ "resource": "pageInteraction", "operation": "getClipboard", "debugPort": 9222, "tabIndex": 0 }
💡 Lưu ý:
  • Clipboard có thể chứa text, hình ảnh, hoặc file
  • Nếu clipboard trống, sẽ trả về chuỗi rỗng
  • Hữu ích để lấy dữ liệu từ các ứng dụng khác

Get Page URL

Lấy URL của trang hiện tại

Lấy URL của trang web hiện tại đang được hiển thị trong trình duyệt.

Tham số:
Debug Port: Port kết nối trình duyệt (bắt buộc)
Tab Index: Index của tab cần thao tác (0-based, bắt buộc)
Ví dụ:
{ "resource": "pageInteraction", "operation": "getPageUrl", "debugPort": 9222, "tabIndex": 0 }
💡 Lưu ý:
  • Trả về URL đầy đủ bao gồm protocol, domain, path, và query parameters
  • Hữu ích để kiểm tra trang hiện tại trong quá trình automation
  • Có thể dùng để validate navigation

Load URL

Điều hướng đến một URL cụ thể

Điều hướng trình duyệt đến một URL cụ thể. Trang sẽ được load và hiển thị trong tab hiện tại.

Tham số:
Debug Port: Port kết nối trình duyệt (bắt buộc)
Tab Index: Index của tab cần thao tác (0-based, bắt buộc)
URL: URL cần điều hướng đến (bắt buộc)
Wait Until: Sự kiện để chờ đợi (domcontentloaded, load, networkidle2)
Ví dụ:
{ "resource": "pageInteraction", "operation": "loadUrl", "debugPort": 9222, "tabIndex": 0, "url": "https://www.google.com", "waitUntil": "networkidle2" }
💡 Lưu ý:
  • URL phải có protocol (http:// hoặc https://)
  • Trang sẽ được load trong tab hiện tại
  • Có thể mất thời gian để load trang hoàn toàn
  • Wait Until giúp đảm bảo trang load xong trước khi tiếp tục

Move and Click

Di chuyển chuột và click vào phần tử

Di chuyển chuột đến vị trí cụ thể và thực hiện click. Có thể click vào tọa độ hoặc phần tử được xác định bởi selector.

Tham số:
Debug Port: Port kết nối trình duyệt (bắt buộc)
Tab Index: Index của tab cần thao tác (0-based, bắt buộc)
Selector: CSS selector của phần tử cần click
Timeout: Thời gian chờ tối đa (milliseconds, bắt buộc)
Click Method: Phương thức click (useJavascriptClick, usePuppeteer, useGhostCursor)
Hesitate: Thời gian chờ trước khi click (milliseconds)
Wait For Click: Thời gian chờ sau khi click (milliseconds)
Button: Loại button (left, right, middle)
Click Count: Số lần click
Ví dụ click theo selector:
{ "resource": "pageInteraction", "operation": "moveAndClick2", "debugPort": 9222, "tabIndex": 0, "selector": "#login-button", "timeout": 30000, "clickMethod": "useGhostCursor", "hesitate": 3000, "waitForClick": 500, "button": "left", "clickCount": 1 }
💡 Lưu ý:
  • Selector ưu tiên hơn tọa độ nếu được cung cấp
  • Click Method: useGhostCursor (mặc định), usePuppeteer, useJavascriptClick
  • Nên đợi trang load hoàn toàn trước khi click
  • Selector có thể sử dụng format đặc biệt: >CSS>, >XPATH>, >FRAME>, >SHADOW>, >AT>

Press Special Key

Bấm phím đặc biệt

Bấm các phím đặc biệt như Enter, Tab, Escape, v.v. Hữu ích cho việc điều hướng và tương tác với form.

Tham số:
Debug Port: Port kết nối trình duyệt (bắt buộc)
Tab Index: Index của tab cần thao tác (0-based, bắt buộc)
Key: Phím cần bấm (Enter, Tab, Escape, v.v.)
Number of Presses: Số lần bấm phím (mặc định: 1)
Ví dụ:
{ "resource": "pageInteraction", "operation": "pressSpecialKey", "debugPort": 9222, "tabIndex": 0, "key": "Enter", "count": 1 }
💡 Lưu ý:
  • Các phím phổ biến: Enter, Tab, Escape, Backspace, Delete, Arrow keys
  • Phím sẽ được bấm trên phần tử đang focus
  • Hữu ích để submit form hoặc điều hướng
  • Có thể bấm nhiều lần cùng một phím

Run JavaScript

Thực thi code JavaScript trên trang web

Thực thi code JavaScript đơn giản trên trang web hiện tại. Có thể thực hiện các thao tác DOM, lấy dữ liệu từ trang, hoặc thực hiện các hành động phức tạp.

Tham số:
Debug Port: Port kết nối trình duyệt (bắt buộc)
Tab Index: Index của tab cần thao tác (0-based, bắt buộc)
JS Code: Code JavaScript cần thực thi (bắt buộc)
Ví dụ lấy title trang:
{ "resource": "pageInteraction", "operation": "runJavaScript", "debugPort": 9222, "tabIndex": 0, "jsCode": "return document.title;" }
Ví dụ click button:
{ "resource": "pageInteraction", "operation": "runJavaScript", "debugPort": 9222, "tabIndex": 0, "jsCode": "document.querySelector('#submit-btn').click();" }
Ví dụ lấy dữ liệu từ form:
{ "resource": "pageInteraction", "operation": "runJavaScript", "debugPort": 9222, "tabIndex": 0, "jsCode": "return { name: document.querySelector('#name').value, email: document.querySelector('#email').value };" }
💡 Lưu ý:
  • Code sẽ được thực thi trong context của trang web hiện tại
  • Có thể return giá trị để nhận kết quả
  • Hỗ trợ tất cả các JavaScript API có sẵn trong browser
  • Phù hợp cho các thao tác phức tạp mà các action khác không hỗ trợ
  • Code phải là JavaScript hợp lệ
⚠️ Cảnh báo:
  • Code sẽ được thực thi trực tiếp trên trang, hãy đảm bảo an toàn
  • Không thực thi code từ nguồn không tin cậy
  • Async/await không được hỗ trợ trực tiếp, hãy sử dụng Promise

Set Clipboard

Đặt nội dung vào clipboard

Đặt nội dung text vào clipboard của hệ thống. Nội dung này có thể được paste vào các ứng dụng khác.

Tham số:
Debug Port: Port kết nối trình duyệt (bắt buộc)
Tab Index: Index của tab cần thao tác (0-based, bắt buộc)
Content: Nội dung text cần đặt vào clipboard (bắt buộc)
Ví dụ:
{ "resource": "pageInteraction", "operation": "setClipboard", "debugPort": 9222, "tabIndex": 0, "content": "Hello World!" }
💡 Lưu ý:
  • Chỉ hỗ trợ text content
  • Nội dung sẽ thay thế clipboard hiện tại
  • Hữu ích để chia sẻ dữ liệu giữa các ứng dụng

Type Text

Nhập text với độ trễ tùy chỉnh

Nhập text vào phần tử đang focus với độ trễ giữa các ký tự để mô phỏng typing thực tế.

Tham số:
Debug Port: Port kết nối trình duyệt (bắt buộc)
Tab Index: Index của tab cần thao tác (0-based, bắt buộc)
Text: Text cần nhập (bắt buộc)
Delay (Milliseconds): Độ trễ giữa các ký tự (milliseconds, mặc định: 100)
Ví dụ:
{ "resource": "pageInteraction", "operation": "type", "debugPort": 9222, "tabIndex": 0, "text": "Hello World!", "delays": 100 }
💡 Lưu ý:
  • Text sẽ được nhập vào phần tử đang focus
  • Delay giúp mô phỏng typing thực tế
  • Delay mặc định là 100ms
  • Hữu ích để điền form một cách tự nhiên