← Mục lục tài liệu

Local_browser_connect

key: manager.local_browser_connect nhóm: ManagerAction hàm Client A13: local_browser_connect

Chức năng

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).

Chi tiết hoạt động

Action thật sự mở trình duyệt local và là action duy nhất hiểu use_local_test_profile.

Client làm tuần tự: tìm executable theo browser_type → dựng command line (--headless=new / --incognito / --proxy-server= / --user-data-dir= / --window-size= / --window-position= / --new-window + addination_args + url) → subprocess.Popen → ghi nhớ cửa sổ vừa mở → nếu không headless: chờ 1.2s, focus cửa sổ, gõ hotkey zoom.

Profile lấy từ đâu

  1. Nếu profile có giá trị → dùng đường dẫn đó. Riêng dạng …/User Data/Default được tách thành --user-data-dir=…/User Data + --profile-directory=Default.
  2. Nếu profile trống use_local_test_profile = true → dùng <A13_PyAutoGUI_Web>/runtime_profiles/local_test_profile (bản sao do Sync Master Profile tạo ra).
  3. Không có gì → Chrome mở profile tạm mặc định của nó.

Nhánh Firefox khác hẳn: dùng -headless / -private-window / -profile / --width --height; Proxy chỉ ghi log cảnh báo không áp dụng; win_pos không áp dụng.

Tham số Client bỏ qua: DEBUG, vmouse, win_scale. Trả về pidcommand — rất hữu ích khi debug.

Tham số (13)

Tên trên UIpayloadNameKiểuMặc địnhMô tả
Browser Type browser_type options (Chrome / Edge / Firefox / Brave) Chrome Chức năng: Trình duyệt mà Client sẽ khởi chạy trên máy thật. Bạn có thể để trống nếu không cần dùng. Ví dụ 1: Chrome. Giải nghĩa: Phổ biến nhất, tương thích tốt nhất với các trang web. Ví dụ 2: Edge. Giải nghĩa: Có sẵn trên Windows, không cần cài thêm. Ví dụ 3: Firefox. Giải nghĩa: Nhân khác Chromium — hữu ích khi cần fingerprint khác biệt.
URL url string about:blank Chức năng: Địa chỉ trang web cần mở. Nên ghi đủ cả http:// hoặc https://. Bạn có thể để trống nếu không cần dùng. Ví dụ 1: https://example.com. Giải nghĩa: Mở một trang cụ thể. Ví dụ 2: about:blank. Giải nghĩa: Mở trang trắng, dùng khi chỉ cần cửa sổ trống để thao tác sau. Ví dụ 3: ={{$json.url}}. Giải nghĩa: Mở đúng link do bước trước lấy được.
Proxy Proxy string Chức năng: Máy chủ proxy để trình duyệt đi ra internet qua đó. Ghi đủ giao thức và cổng. Để trống nếu đi thẳng. Bạn có thể để trống nếu không cần dùng. Ví dụ 1: http://127.0.0.1:8080. Giải nghĩa: Proxy chạy ngay trên máy Client, hay dùng khi debug bằng Fiddler/Charles. Ví dụ 2: http://user:pass@10.0.0.5:3128. Giải nghĩa: Proxy có yêu cầu tài khoản mật khẩu. Ví dụ 3: socks5://127.0.0.1:1080. Giải nghĩa: Proxy SOCKS5, thường dùng cho tunnel SSH.
Profile profile string Chức năng: Đường dẫn thư mục dữ liệu trình duyệt sẽ dùng. Trỏ vào thư mục User Data để giữ nguyên cookie và trạng thái đăng nhập sẵn có. Bạn có thể để trống nếu không cần dùng. Ví dụ 1: C:/Users/admin/AppData/Local/Google/Chrome/User Data. Giải nghĩa: Dùng lại toàn bộ đăng nhập của profile thật. Ví dụ 2: D:/profiles/shop_account_01. Giải nghĩa: Thư mục riêng cho một tài khoản, tách biệt hoàn toàn. Ví dụ 3: ={{$json.profile_path}}. Giải nghĩa: Đường dẫn do bước trước chọn ra.
Use Local Test Profile use_local_test_profile boolean false Chức năng: Bật thì mở trình duyệt bằng bản sao profile đã tạo bởi Sync Master Profile, thay vì profile thật. Nhờ vậy thao tác tự động không làm bẩn và không khóa profile bạn đang dùng hằng ngày. Bạn có thể để trống nếu không cần dùng. Ví dụ 1: true. Giải nghĩa: Chạy trên bản sao — an toàn cho profile thật. Ví dụ 2: false. Giải nghĩa: Dùng đúng đường dẫn ghi ở ô Profile. Ví dụ 3: ={{$json.flag}}. Giải nghĩa: Chọn chế độ theo dữ liệu điều khiển.
Additional Args addination_args string Chức năng: Tham số dòng lệnh bổ sung khi khởi chạy trình duyệt, cách nhau bằng khoảng trắng. Dùng để bật những cờ mà node chưa có ô riêng. Bạn có thể để trống nếu không cần dùng. Ví dụ 1: --lang=vi-VN. Giải nghĩa: Ép giao diện trình duyệt sang tiếng Việt. Ví dụ 2: --disable-blink-features=AutomationControlled. Giải nghĩa: Giấu bớt dấu hiệu bị điều khiển tự động. Ví dụ 3: --window-size=1280,720 --mute-audio. Giải nghĩa: Gộp nhiều cờ trong một ô.
Win Pos win_pos string Chức năng: Vị trí góc trên-trái của cửa sổ trên màn hình, viết dạng X,Y tính bằng pixel. Bạn có thể để trống nếu không cần dùng. Ví dụ 1: 0,0. Giải nghĩa: Dán sát góc trên bên trái màn hình. Ví dụ 2: 300,300. Giải nghĩa: Lệch vào giữa để không che thanh tác vụ. Ví dụ 3: 1920,0. Giải nghĩa: Đẩy cửa sổ sang màn hình thứ hai.
Win Size win_size string Chức năng: Kích thước cửa sổ viết dạng Rộng,Cao tính bằng pixel. Bạn có thể để trống nếu không cần dùng. Ví dụ 1: 1280,720. Giải nghĩa: Kích thước gọn, chạy được cả trên màn hình nhỏ. Ví dụ 2: 1920,1080. Giải nghĩa: Full HD, khớp với hầu hết ảnh mẫu chụp sẵn. Ví dụ 3: 800,600. Giải nghĩa: Cửa sổ nhỏ, hữu ích khi cần mở nhiều cửa sổ song song.
Incognito incognito boolean false Chức năng: Bật thì mở ở chế độ ẩn danh: không dùng và không lưu cookie, lịch sử của phiên trước. Mỗi lần chạy là một phiên trắng. Bạn có thể để trống nếu không cần dùng. Ví dụ 1: true. Giải nghĩa: Bắt đầu sạch hoàn toàn — hợp khi test luồng đăng ký mới. Ví dụ 2: false. Giải nghĩa: Giữ cookie và trạng thái đăng nhập sẵn có. Ví dụ 3: ={{$json.flag}}. Giải nghĩa: Chọn chế độ theo dữ liệu điều khiển.
DEBUG DEBUG boolean false Chức năng: Bật để Client ghi thêm nhật ký chi tiết cho bước này, phục vụ dò lỗi. Bạn có thể để trống nếu không cần dùng. Ví dụ 1: false. Giải nghĩa: Chạy im lặng như bình thường. Ví dụ 2: true. Giải nghĩa: In log chi tiết để tìm nguyên nhân khi bước này hay hỏng. Ví dụ 3: ={{$json.debug}}. Giải nghĩa: Bật log theo cờ điều khiển của workflow.
Headless headless boolean false Chức năng: Bật thì trình duyệt chạy ẩn không hiện cửa sổ. Lưu ý: các action dựa vào ảnh và tọa độ màn hình sẽ KHÔNG hoạt động ở chế độ này. Bạn có thể để trống nếu không cần dùng. Ví dụ 1: false. Giải nghĩa: Hiện cửa sổ thật — bắt buộc nếu dùng nhóm Image hoặc tọa độ chuột. Ví dụ 2: true. Giải nghĩa: Chạy ẩn, nhẹ máy, chỉ hợp khi thao tác hoàn toàn qua DOM. Ví dụ 3: ={{$json.flag}}. Giải nghĩa: Chọn chế độ theo dữ liệu điều khiển.
Virtual Mouse vmouse boolean false Chức năng: Bật lớp chuột ảo vẽ đè lên màn hình để nhìn thấy con trỏ đang ở đâu. Chủ yếu dùng khi quan sát và dò lỗi. Bạn có thể để trống nếu không cần dùng. Ví dụ 1: false. Giải nghĩa: Không vẽ gì thêm — chạy production. Ví dụ 2: true. Giải nghĩa: Hiện con trỏ ảo để xem Client đang bấm vào đâu. Ví dụ 3: ={{$json.flag}}. Giải nghĩa: Bật/tắt theo cờ điều khiển.
Zoom (%) zoom string 100 Chức năng: Mức phóng to nội dung trang tính theo phần trăm, áp dụng bằng tổ hợp Ctrl +/- sau khi mở. Ảnh hưởng trực tiếp tới tọa độ và tới việc ảnh mẫu có khớp hay không. Bạn có thể để trống nếu không cần dùng. Ví dụ 1: 100. Giải nghĩa: Giữ nguyên 100% — nên dùng nếu có tìm theo ảnh mẫu. Ví dụ 2: 80. Giải nghĩa: Thu nhỏ để nhìn thấy nhiều nội dung hơn trong một màn hình. Ví dụ 3: 125. Giải nghĩa: Phóng to cho phần tử dễ bấm trúng hơn.

🚩 = bắt buộc. Ô rỗng của tham số tùy chọn sẽ bị loại khỏi payload.inputs — Client tự áp default.

Payload MQTT gửi đi

{
  "version": "great-lotus-pyauto-v1",
  "action": {
    "key": "manager.local_browser_connect",
    "group": "ManagerAction",
    "function": "local_browser_connect"
  },
  "inputs": {
    "browser_type": {
      "type": "options",
      "value": "Chrome"
    },
    "Proxy": {
      "type": "string",
      "value": ""
    },
    "profile": {
      "type": "string",
      "value": ""
    },
    "use_local_test_profile": {
      "type": "boolean",
      "value": false
    },
    "incognito": {
      "type": "boolean",
      "value": false
    },
    "DEBUG": {
      "type": "boolean",
      "value": false
    },
    "headless": {
      "type": "boolean",
      "value": false
    },
    "vmouse": {
      "type": "boolean",
      "value": false
    },
    "zoom": {
      "type": "string",
      "value": 100
    }
  },
  "meta": {
    "requestId": "<16 hex>",
    "requestTopic": "WP2_PC176",
    "responseTopic": "RES_WP2_PC176",
    "waitForResponse": true,
    "responseTimeoutSec": 60
  }
}

Publish lên topic bạn nhập ở ô Topic; nếu bật Wait For Response, node chờ Client trả lời trên RES_<topic> với đúng meta.requestId. return: "NG" ⇒ node ném lỗi.

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.