Tài liệu

Tài liệu RunMacro

Tạo robot đầu tiên, rồi tiến xa theo nhu cầu.

Hướng dẫn rõ ràng từng bước để tạo, chạy và cải thiện robot cho công việc máy tính lặp lại.

RunMacro robot
Tài liệu Tính năng Profile Chrome (CDP)
🧩 Tính năng

Mở profile Chrome cho Chế độ Trình duyệt

Đổi sang Chế độ Trình duyệt, bấm mở Chrome viết lệnh, chọn Chrome mặc định, đặt Tên profile, giữ nguyên Port và Viewport rồi bấm Mở Chrome. Nhập lại đúng tên profile cũ thì lần sau mở lại đúng profile đó.

Điều kiện cần

  • License trả phí. Chế độ Trình duyệt bị chặn hai lần: lúc vào mode và lúc bấm chạy.
  • Google Chrome đã cài (với đường Chrome mặc định). RunMacro tìm Chrome trong PATH, registry rồi các thư mục Program Files.
  • Một cổng TCP còn trống trong khoảng 9000–9999.
  • Windows — phần đổi kích thước và tự xếp cửa sổ chỉ chạy trên Windows.
  • Với trình duyệt đa hồ sơ: app đó phải đang mở và API nội bộ của nó truy cập được; Dolphin Anty và GoLogin cần thêm token.
  • Tiện ích Smart HTML không bắt buộc cho Chế độ Trình duyệt cơ bản — chỉ cần khi dùng bộ chọn phần tử, Explorer hoặc Smart Record.

Chế độ hỗ trợ

  • Chế độ Browser

Chức năng này làm gì

Chế độ Trình duyệt điều khiển Chrome qua giao thức DevTools (CDP) thay vì chiếm chuột và bàn phím thật của bạn. Trước khi chạy macro, bạn chọn nguồn trình duyệt: Chrome mặc định — RunMacro tự mở Chrome trong một thư mục profile riêng do app quản lý kèm remote debugging port; hoặc một trình duyệt đa hồ sơ (GPM Login, AdsPower, Hidemium, Dolphin Anty, GoLogin, Octo Trình duyệt) — RunMacro gọi API nội bộ của app đó để mở hồ sơ và nhận lại cổng debug.

Khi nào nên dùng

  • Tự động hóa website mà vẫn muốn dùng máy làm việc khác song song.
  • Cần chạy nhiều hồ sơ đăng nhập khác nhau cùng lúc.
  • Muốn giữ nguyên phiên đăng nhập giữa các lần chạy (dùng lại cùng tên profile).
  • Đang dùng trình duyệt đa hồ sơ và muốn RunMacro điều khiển hồ sơ trong đó.

Khi nào không nên dùng

  • Tự động hóa phần mềm hoặc game trên desktop — dùng Chế độ Desktop.
  • Đang dùng bản Miễn phí: Chế độ Trình duyệt là tính năng trả phí.

Các bước cấu hình

  1. Chọn Chế độ Trình duyệt ở màn hình chọn chế độ (hoặc bấm phím 2).
  2. Bấm nút mở Chrome viết lệnh. Hộp chọn nguồn trình duyệt xuất hiện.
  3. Chọn Chrome mặc định rồi bấm Mở.
  4. Trong hộp Mở profile tạo lệnh: nhập Tên profile (mặc định Runmacro). Ô Folder bên dưới hiện đường dẫn thật của profile.
  5. Giữ nguyên Port đã điền sẵn, hoặc bấm Random để lấy cổng khác.
  6. Đặt Viewport nếu cần (mặc định 800x600). Cửa sổ thật sẽ cao hơn khoảng 90px vì tính cả thanh giao diện Chrome.
  7. Bấm Mở Chrome. RunMacro mở trình duyệt và chờ cổng CDP phản hồi.
  8. Khi mở xong, port được ghi vào ô port của cửa sổ chính. Viết macro với cửa sổ Chrome đó.
  9. Lúc bấm chạy, chọn nguồn trình duyệt lần nữa rồi Nhập CSV danh sách hồ sơ để chạy đa luồng.

Giải thích từng tùy chọn

Tên profile

Ô cho phép nhập tự do và chọn từ danh sách profile đã có. Nhập tên mới là tạo profile mới; nhập lại đúng tên cũ là mở lại profile đó cùng phiên đăng nhập. Ký tự đặc biệt sẽ được đổi thành _ khi tạo thư mục, nên hai tên khác nhau có thể trỏ vào cùng một thư mục.

Folder

Chỉ để xem. Hiện đường dẫn thật của profile, cập nhật ngay khi bạn đổi tên. Profile nằm trong thư mục dữ liệu của app, không phải profile Chrome cá nhân.

Port

Cổng remote debugging, từ 9000 đến 9999, đã điền sẵn một cổng còn trống. Nút Random chọn cổng trống khác. Khi chạy nhiều luồng, mỗi cửa sổ được cấp một cổng riêng tự động.

Viewport (rộng x cao)

Kích thước vùng nội dung trang, mặc định 800x600. Cửa sổ thật cao hơn khoảng 90px do tính thêm thanh giao diện Chrome. Giữ cùng một viewport giữa lúc viết và lúc chạy để tọa độ đã ghi còn đúng.

Mở folder profile

Tạo thư mục nếu chưa có rồi mở bằng File Explorer. Hữu ích khi cần kiểm tra hoặc sao lưu dữ liệu profile.

Xóa dữ liệu profile

Xóa toàn bộ dữ liệu của profile, gồm cookie và phiên đăng nhập. Không xóa được khi Chrome đang dùng thư mục đó, và luôn hỏi xác nhận trước (mặc định là Không).

Nguồn trình duyệt

Chọn Chrome mặc định hoặc một trình duyệt đa hồ sơ. Mỗi nguồn cần cấu hình khác nhau: xem bảng dưới đây.

GPM Login

Cần URL API (mặc định http://localhost:9495) và đường dẫn GPMLogin.exe. Cột đầu của CSV là profile_id.

AdsPower

URL API mặc định http://local.adspower.net:50325, không cần token. Cột đầu CSV là profile_id (điền user_id AdsPower vào cột đó). API này giới hạn 1 lệnh mỗi giây nên RunMacro tự giãn nhịp gọi.

Hidemium

URL API mặc định http://127.0.0.1:2222 (bản Hidemium 4); bản cũ dùng cổng 5555. Cột đầu CSV là profile_id (điền UUID Hidemium vào cột đó).

Dolphin Anty

URL API mặc định http://localhost:3001bắt buộc có API token để tránh lỗi 401. Cột đầu CSV là profile_id.

GoLogin

Dùng SDK Python gologin nên cần cài thêm gói này; không nhập URL API. Cần dev token — token này chỉ có ở gói trả phí của GoLogin. Cột đầu CSV là profile_id.

Octo Trình duyệt

URL API mặc định http://localhost:58888, không cần token vì bạn đã đăng nhập trong app Octo. Cột đầu CSV là profile_id (điền UUID Octo vào cột đó). Cần gói Base trở lên.

Số luồng song song / Kích thước / Tự xếp vị trí cửa sổ / Scale xếp cửa sổ

Có ở hộp thoại cấu hình chạy. Số luồng quyết định bao nhiêu cửa sổ mở cùng lúc. Không tích tự xếp vị trí thì RunMacro chỉ đổi kích thước, giữ nguyên vị trí trình duyệt tự mở. Dùng Scale xếp cửa sổ khi Windows Display Scale làm cửa sổ bị xếp lệch.

Kết quả mong đợi

Một cửa sổ Chrome mở với profile riêng nằm trong thư mục do RunMacro quản lý (không dùng profile Chrome thật của bạn), có remote debugging port đang mở. Macro chạy trong cửa sổ này mà không chiếm chuột hay bàn phím của bạn.

Ví dụ thực tế

Ví dụ: mở profile Chrome mặc định để viết macro

  1. Vào Chế độ Trình duyệt, bấm nút mở Chrome viết lệnh.
  2. Chọn Chrome mặc định, bấm Mở.
  3. Nhập Tên profileshop_A, giữ Port đã điền sẵn, Viewport 800x600.
  4. Bấm Mở Chrome và đợi cửa sổ mở.
  5. Đăng nhập trang cần dùng ngay trong cửa sổ đó — phiên đăng nhập được giữ trong profile shop_A.
  6. Viết macro. Lần sau nhập lại shop_A là vào đúng phiên đã đăng nhập, không phải làm lại.

Ví dụ: chạy cùng macro trên 5 hồ sơ song song

  1. Viết và kiểm thử macro trên một profile trước.
  2. Bấm chạy. Chọn nguồn trình duyệt (Chrome mặc định hoặc trình duyệt đa hồ sơ của bạn).
  3. Trong hộp cấu hình, đặt Số luồng song song = 5.
  4. Bấm Xem file mẫu để biết định dạng, rồi bấm Import CSV với danh sách hồ sơ. Cột đầu là profile_id; Chrome mặc định dùng profile_name.
  5. Các cột còn lại trong CSV trở thành biến dùng được trong macro.
  6. Bấm OK. RunMacro mở tối đa 5 cửa sổ cùng lúc, mỗi cửa sổ một cổng và một hồ sơ riêng.

Giới hạn và trường hợp lỗi

  • Chế độ Trình duyệt cần license trả phí; bản Miễn phí bị chặn ngay lúc vào mode.
  • Đổi kích thước và tự xếp cửa sổ chỉ chạy trên Windows.
  • Tên profile có ký tự đặc biệt sẽ bị đổi thành _, nên My ProfileMy/Profile dùng chung một thư mục.
  • Profile có tên bắt đầu bằng codex_, test_ hoặc _ bị ẩn khỏi danh sách gợi ý, dù gõ lại tên vẫn mở được.
  • Hết cổng trống trong khoảng 9000–9999 thì không mở thêm được cửa sổ.
  • URL API của các nguồn không phải GPM hiện không được lưu lại giữa các lần mở app — phải nhập lại.
  • Khi bấm chạy, macro có lệnh không được Chế độ Trình duyệt hỗ trợ sẽ bị chặn kèm danh sách lệnh đó.
  • Profile Chrome chứa cookie và phiên đăng nhập: chỉ chạy macro bạn tin được trên profile đã đăng nhập tài khoản quan trọng.

Mẹo & lỗi thường gặp

Dùng tên profile có ý nghĩa (shop_A, mail_02) và ghi lại — nhập đúng tên cũ là cách duy nhất để quay lại phiên đăng nhập đó.
Xóa dữ liệu profile xóa luôn cookie và phiên đăng nhập, không lấy lại được. Hãy chắc bạn chọn đúng profile.
Giữ nguyên Viewport giữa lúc viết macro và lúc chạy. Đổi kích thước làm phần tử xê dịch và các bước dựa vào tọa độ có thể bấm sai chỗ.
Cửa sổ mở nhưng macro không chạy được: kiểm tra port trong ô của cửa sổ chính có khớp cổng Chrome đang mở không.
Chạy nhiều luồng ăn RAM và CPU theo số cửa sổ. Hãy thử 2–3 luồng trước rồi tăng dần thay vì đặt ngay 20.

Thông tin kiểm chứng

  • core/chrome_cdp_session.py
  • core/browser_providers.py
  • core/background_chrome_runner.py
Robot biểu tượng của RunMacro

Công việc của robot. Thời gian của bạn.

Tạo robot trong vài phút, không cần lập trình. Chạy ổn định, quản lý từ xa, chi phí rõ ràng — và bạn luôn giữ quyền kiểm soát.