10 action groups: ManagerAction, MouseAction, KeyboardAction, BrowserControl, ElementAction, ImageAction, OthersAction, EmailAction, DeveloperAction, General Debug
Mỗi action trong n8n có một link 📘 dẫn thẳng tới trang tương ứng bên dưới. Tổng cộng 58 action trong 10 nhóm.
| Trường | Ý nghĩa |
|---|---|
Topic |
Topic MQTT gửi tới máy Client (vd WP2_PC176). Bắt buộc. |
QoS |
0 / 1 / 2 — mặc định 1. |
Include Input Items |
Đính kèm field từ node trước vào payload.inputs.inputItems. |
Wait For Response |
Chờ Client trả lời trên RES_<topic> rồi mới đi tiếp. |
Response Timeout (sec) |
Thời gian chờ tối đa (chỉ hiện khi bật Wait For Response). |
⌛Delay Next Step (ms) |
Delay trước bước kế tiếp; hỗ trợ rand(a,b). |
| Action | Chức năng | Tham số |
|---|---|---|
GPM_connectmanager.gpm_connect |
Mở trình duyệt local rồi giữ phiên làm việc. Tên gọi lịch sử: Client A13 hiện chỉ gọi lại local_browser_connect và ép use_local_test_profile=false — KHÔNG hề gọi GPM API. Muốn mở profile GPM thật thì dùng Open Profile. | 13 |
Local_browser_connectmanager.local_browser_connect
|
Tự khởi chạy Chrome/Edge/Firefox/Brave trên máy Client bằng dòng lệnh, mở sẵn URL, rồi ghi nhớ cửa sổ đó làm mục tiêu cho mọi action sau. Là action duy nhất hiểu Use Local Test Profile (dùng bản sao profile trong runtime_profiles/local_test_profile). | 13 |
Open Profilemanager.open_profile |
Nhờ GPM Login mở một profile theo Profile ID (gọi GET /profiles/start/<id>), sau đó bám lấy cửa sổ vừa hiện và ghi nhớ cổng remote debugging để các action DOM/CDP dùng về sau. Dùng khi cần chống fingerprint bằng profile GPM thay vì trình duyệt local. | 15 |
Sync Master
Profilemanager.sync_master_profile_to_local_test_profile |
Nhân bản một profile trình duyệt có thật (cookie, đăng nhập, extension) sang thư mục sandbox runtime_profiles/local_test_profile. Chạy trước khi test để có sẵn trạng thái đăng nhập mà không phải mở — và không làm bẩn — profile thật. | 1 |
Clear Local Test
Profilemanager.clear_local_test_profile |
Xóa sạch thư mục sandbox local_test_profile. Dùng để reset về profile trắng khi cần test lại luồng đăng nhập từ đầu, thu hồi dung lượng, hoặc dọn cookie/session còn sót sau khi chạy xong. Không đụng tới profile gốc. | 0 |
quitmanager.quit |
Đóng toàn bộ tiến trình trình duyệt mà A13 đã tự mở và reset state phiên (cửa sổ mục tiêu, tab, frame). Lưu ý: KHÔNG đóng profile GPM đã mở bằng Open Profile. | 1 |
| Action | Chức năng | Tham số |
|---|---|---|
clickmouse.click |
Click chuột vật lý một lần (hoặc N lần liên tiếp) tại tọa độ X,Y hoặc tại phần tử chỉ định bằng XPath. Chuột di chuyển theo quỹ đạo giống người thật trước khi bấm. | 7 |
many_clickmouse.many_click |
Click lặp đi lặp lại cho tới khi ảnh dừng xuất hiện trên màn hình hoặc hết timeout. Dùng cho nút "Tiếp tục/Next/Skip" phải bấm nhiều lần mà không biết trước bao nhiêu lần. | 9 |
movemouse.move |
Chỉ di chuyển con trỏ tới tọa độ hoặc phần tử, không bấm. Chọn được kiểu di chuyển natural/linear/hesitant để mô phỏng người thật — hữu ích khi cần kích hoạt hiệu ứng hover hoặc "làm ấm" hành vi chuột trước thao tác quan trọng. | 6 |
mouse_click_and_holdmouse.mouse_click_and_hold
|
Nhấn giữ nút chuột và KHÔNG nhả ra. Là nửa đầu của thao tác kéo-thả hoặc bôi đen; phải gọi Mouse Release sau đó để kết thúc. | 5 |
mouse_releasemouse.mouse_release |
Nhả nút chuột đang được giữ. Là nửa sau của cặp mouse_click_and_hold → (move) → mouse_release. | 1 |
mouse_scrollmouse.mouse_scroll |
Cuộn trang theo số pixel chỉ định, lên hoặc xuống. Có thể cuộn tại vị trí một phần tử cụ thể (đưa chuột tới đó trước khi cuộn) để cuộn đúng vùng scroll lồng nhau. | 5 |
mouse_scroll_topmouse.mouse_scroll_top |
Cuộn thẳng lên đầu trang. Tiện để đưa trang về mốc xác định trước khi đo tọa độ hoặc chụp ảnh. | 1 |
mouse_scroll_bottommouse.mouse_scroll_bottom
|
Cuộn thẳng xuống cuối trang. Hay dùng để kích hoạt lazy-load hoặc infinite scroll. | 1 |
mouse_scroll_objectmouse.mouse_scroll_object
|
Cuộn cho tới khi phần tử theo XPath lọt vào vùng nhìn thấy, tối đa trong timeout_sec giây. Dùng khi nút cần bấm nằm ngoài màn hình và không biết phải cuộn bao nhiêu. | 4 |
| Action | Chức năng | Tham số |
|---|---|---|
typekeyboard.type |
Gõ văn bản vào ô nhập đang focus (hoặc vào phần tử theo XPath) bằng bàn phím vật lý, có tốc độ WPM và xác suất gõ nhầm để giống người thật. Bật Just Paste Text để dán bằng clipboard khi cần nhanh, nhập nội dung dài, hoặc tránh lỗi bộ gõ tiếng Việt. | 6 |
press_keykeyboard.press_key |
Bấm một phím đơn (Enter, Tab, Escape...) N lần, cách nhau delay_ms. Chọn được press (bấm-nhả), down (giữ) hay up (nhả) để dựng thao tác giữ phím phức tạp. | 4 |
combo_keykeyboard.combo_key |
Bấm một tổ hợp phím dạng Ctrl+A, Ctrl+Shift+P, Alt+Tab — nhấn theo thứ tự rồi nhả ngược lại. Dùng cho copy/paste, mở DevTools, chuyển cửa sổ. | 1 |
vcopykeyboard.vcopy |
Lưu một chuỗi vào clipboard ảo của A13 theo số slot (index), không đụng clipboard thật của Windows. Cho phép giữ nhiều mẩu dữ liệu song song trong cùng workflow. | 2 |
vpastekeyboard.vpaste |
Dán nội dung từ slot clipboard ảo đã lưu bằng vcopy vào ô nhập hiện tại hoặc phần tử theo XPath. | 2 |
| Action | Chức năng | Tham số |
|---|---|---|
Nextbrowser.next |
Đi tới trang kế tiếp trong lịch sử duyệt web (tương đương nút Forward). | 0 |
Previousbrowser.previous |
Quay lại trang trước trong lịch sử duyệt web (tương đương nút Back). | 0 |
Refreshbrowser.refresh |
Tải lại trang hiện tại (F5). | 0 |
URLbrowser.url |
Điều hướng tab hiện tại tới một URL và chờ tới trạng thái tải chỉ định (load / domcontentloaded / networkidle / commit). Chọn networkidle khi trang render bằng JS và cần chờ dữ liệu về. | 3 |
NewTabbrowser.new_tab |
Mở một tab mới với URL cho trước; tùy chọn chuyển focus sang tab đó luôn hay giữ nguyên tab đang làm việc. | 2 |
CloseTabbrowser.close_tab |
Đóng một tab theo chỉ số; bỏ trống thì đóng tab đang hoạt động. | 1 |
CloseOthersTabbrowser.close_others_tab |
Đóng tất cả tab trừ tab được giữ lại. Dùng để dọn cửa sổ về trạng thái sạch giữa hai vòng lặp workflow. | 1 |
SwitchTabbrowser.switch_tab |
Chuyển focus sang tab theo chỉ số (0 là tab đầu tiên). Mọi action sau đó tác động lên tab này. | 1 |
| Action | Chức năng | Tham số |
|---|---|---|
wait_elementelement.wait_element |
Chờ tới khi phần tử đạt trạng thái mong muốn: present / visible / editable, hoặc phủ định của chúng. Đây là "chốt đồng bộ" nên đặt trước mỗi thao tác click/gõ để tránh thao tác vào trang chưa render xong. | 4 |
get_textelement.get_text |
Đọc nội dung văn bản của phần tử theo selector/XPath và trả về trong output của node — dùng để lấy giá trị hiển thị trên trang cho các bước sau. | 3 |
get_attributeelement.get_attribute |
Đọc một thuộc tính DOM của phần tử (href, value, data-*, class...) và trả về. Dùng khi thông tin cần lấy nằm trong attribute chứ không phải text hiển thị. | 4 |
count_elementelement.count_element |
Đếm số phần tử khớp selector/XPath. Dùng để kiểm tra danh sách đã load đủ chưa, hoặc rẽ nhánh workflow theo số kết quả tìm được. | 2 |
| Action | Chức năng | Tham số |
|---|---|---|
ImageClickimage.image_click |
Tìm ảnh mẫu trên màn hình rồi click vào đó. Dùng khi phần tử không có DOM ổn định để bám (canvas, ảnh, popup native, iframe chéo miền). | 6 |
ImageMoveimage.image_move |
Tìm ảnh mẫu trên màn hình rồi chỉ di chuyển chuột tới đó, không click — để hover hiển thị tooltip/menu. | 5 |
ImageTypeimage.image_type |
Tìm ảnh mẫu (thường là một ô nhập), click vào rồi gõ văn bản vào đó. Gộp image_click + type thành một bước. | 7 |
ImageWaitimage.image_wait |
Chờ tới khi ảnh mẫu XUẤT HIỆN trên màn hình hoặc hết timeout. Dùng làm chốt đồng bộ khi không có DOM để chờ. | 4 |
NotImageWaitimage.not_image_wait |
Ngược lại image_wait: chờ tới khi ảnh mẫu BIẾN MẤT. Điển hình là chờ spinner/màn hình loading tắt đi. | 4 |
WaitColorimage.wait_color |
Chờ tới khi TẤT CẢ các điểm tọa độ chỉ định cùng mang đúng màu mong muốn (sai số ±tolerant mỗi kênh RGB). Cách kiểm tra trạng thái nhẹ và nhanh hơn so khớp ảnh. Action này luôn chạy đồng bộ; hết giờ mà chưa khớp thì node báo lỗi. | 3 |
Clean ImageStorageimage.clean_image_storage
|
Dọn kho ảnh tạm mà các action image đã tải/cắt về trên máy Client. Chạy cuối workflow để không phình ổ đĩa. | 0 |
wait_to_imageimage.wait_to_image |
Chờ ảnh mẫu xuất hiện theo cơ chế so khớp confidence (PyAutoGUI locate) và trả về vị trí tìm được. Khác nhóm temperature ở thuật toán so khớp và ở việc trả về danh sách kết quả. | 7 |
check_image_existimage.check_image_exist |
Kiểm tra NGAY một lần xem ảnh mẫu có trên màn hình không rồi trả kết quả, không chờ. Dùng để rẽ nhánh if/else trong workflow. | 5 |
image_searchimage.image_search |
Tìm tất cả vị trí khớp ảnh mẫu trên màn hình (tối đa max_results) và trả về danh sách tọa độ. Dùng khi cần lặp qua nhiều mục giống nhau. | 5 |
| Action | Chức năng | Tham số |
|---|---|---|
randomothers.random |
Nhờ máy Client sinh giá trị ngẫu nhiên (số, mật khẩu, màu RGB/HEX, hoặc tọa độ chuột) và trả về ngay cho các bước sau. Node tự ép chạy đồng bộ với timeout 10s và ẩn các trường chung. | 19 |
check_popup_and_frameothers.check_popup_and_frame
|
Quét và liệt kê các popup/cửa sổ con và iframe đang có. Chạy trước khi switch để biết chính xác cần chuyển vào đâu. | 0 |
switch_to_popupothers.switch_to_popup |
Chuyển ngữ cảnh làm việc sang cửa sổ popup có tiêu đề khớp. Bắt buộc trước khi thao tác trong cửa sổ đăng nhập OAuth/thanh toán. | 1 |
switch_to_frameothers.switch_to_frame |
Chuyển ngữ cảnh vào một iframe (chọn theo index=, name=, css= hoặc default). Không làm bước này thì mọi selector bên trong iframe đều không tìm thấy. | 1 |
switch_to_defaultothers.switch_to_default |
Quay về ngữ cảnh trang gốc sau khi đã vào iframe/popup. Quên bước này là nguyên nhân phổ biến khiến các action tiếp theo "không thấy phần tử". | 0 |
accept_alertothers.accept_alert |
Đồng ý hộp thoại alert/confirm/prompt của trình duyệt (bấm OK), có thể điền sẵn nội dung cho prompt. | 2 |
cancel_alertothers.cancel_alert |
Từ chối hộp thoại alert/confirm/prompt của trình duyệt (bấm Cancel). | 1 |
execute_javascriptothers.execute_javascript
|
Chạy một đoạn JavaScript ngay trong trang và trả kết quả về workflow. Lối thoát cho những việc UI không làm được: đọc biến JS, sửa DOM, gọi hàm nội bộ của trang. | 2 |
| Action | Chức năng | Tham số |
|---|---|---|
read_mail_codeemail.read_mail_code |
Đăng nhập IMAP vào hòm thư, lọc thư mới theo người nhận/thời gian, rồi bóc mã xác thực ra — theo độ dài + kiểu ký tự, hoặc theo XPath của phần tử chứa mã. Dùng cho luồng OTP/2FA khi đăng ký hoặc đăng nhập. | 14 |
| Action | Chức năng | Tham số |
|---|---|---|
get_active_codedeveloper.getcode |
Lấy HTML của frame đang hoạt động. Dùng khi dựng selector: xem chính xác trang đang render gì. | 0 |
get_iframe_codedeveloper.get_iframe_code |
Lấy HTML của một iframe theo chỉ số, không cần switch vào nó trước. | 1 |
get_full_codedeveloper.get_full_code |
Gom HTML của trang chính + tất cả iframe (tùy chọn kèm bản pierce shadow DOM qua CDP) thành một khối. Nặng nhất nhưng đầy đủ nhất — node tự nới timeout thêm 15s. Dùng khi không rõ phần tử nằm ở frame nào. | 4 |
get_infodeveloper.get_info |
Trả về trạng thái máy Client: kích thước màn hình, vị trí chuột, tiêu đề cửa sổ đang focus, số tiến trình trình duyệt, profile GPM đang mở... Bước đầu tiên nên chạy khi debug "sao không thấy gì". | 0 |
capturedeveloper.capture |
Chụp màn hình máy Client và lưu thành file PNG trên máy đó. Dùng để lưu bằng chứng hoặc soi lại lỗi sau khi workflow chạy đêm. | 3 |
count_elementdeveloper.count_element |
Đếm phần tử khớp selector/XPath (bản dành cho debug, tương đương Element → count_element). | 2 |
| Action | Chức năng | Tham số |
|---|---|---|
debug_publishgeneral.debug_publish |
Bắn một bản tin tùy ý (text/JSON/số/cờ) qua MQTT để kiểm tra đường truyền node ↔ broker ↔ Client. Dùng khi nghi ngờ sai topic, sai credential hoặc Client không subscribe. | 4 |
Sinh tự động bởi tools/gen_doc_html.js từ ACTION_SPECS
(package n8n-nodes-c12_pyautogui_web@0.1.34)
· 2026-07-22 · Đừng sửa tay file này — sửa _notes/ hoặc source rồi chạy lại
npm run doc:build.