# setup chrome

{% hint style="info" %}
**Mục tiêu**: cài đặt Chrome và chromedriver tương thích để chạy automation browser.\
**Thời gian**: 5 phút\
**Yêu cầu**: Google Chrome (KHÔNG dùng Edge/Firefox/Brave)
{% endhint %}

## Tại sao cần chromedriver?

MIN Automate điều khiển Chrome qua chuẩn **W3C WebDriver**. Để chuẩn này hoạt động, cần 1 file trung gian là **chromedriver.exe** — đóng vai trò "phiên dịch" giữa MIN Automate và Chrome thật.

```
[MIN Automate] ──HTTP──► [chromedriver.exe] ──CDP──► [Chrome]
```

**Quan trọng**: chromedriver phải **đúng version với Chrome** đang cài. Chrome 130 → chromedriver 130. Chrome 131 → chromedriver 131.

{% stepper %}
{% step %}

## Bước 1 — Cài Google Chrome

Nếu chưa có:

1. Tải Chrome: <https://www.google.com/chrome>
2. Cài đặt mặc định
3. Mở Chrome → kiểm tra version: gõ `chrome://version/` trong address bar → ghi nhớ số version (vd `130.0.6723.117`)

{% hint style="warning" %}
**Không dùng Chrome Beta/Canary/Dev**: vì chromedriver match thường chậm hơn. Dùng bản **Stable** ổn định nhất.
{% endhint %}
{% endstep %}

{% step %}

## Bước 2 — Cài chromedriver (TỰ ĐỘNG)

MIN Automate có **nút tải chromedriver tự động** — đây là cách nhanh và đúng nhất.

### Trong cấu hình app workflow Browser

1. Tạo app mới với platform **Browser** (hoặc mở app browser có sẵn)
2. Trong sidebar → nhấn **Mở trình duyệt mới**
3. Cửa sổ **Browser Config** hiện ra
4. Tại trường **Chrome browser** → app tự detect path Chrome trên máy
5. Nếu chưa có chromedriver, sẽ hiện nút **"⬇ Tải chromedriver"** bên cạnh
6. Nhấn nút **Tải chromedriver** → app tự:
   * Đọc version Chrome
   * Tải chromedriver match version từ Google CDN
   * Đặt vào cùng folder Chrome (vd `C:\Program Files\Google\Chrome\Application\`)
7. Đợi 10-30s (tùy mạng) → nút mất → sẵn sàng dùng

{% hint style="success" %}
**Đây là cách khuyến nghị** — không cần lo version mismatch. Chrome update → vào lại Browser Config → nhấn Tải chromedriver lại là xong.
{% endhint %}
{% endstep %}

{% step %}

## Bước 3 — Cài chromedriver (THỦ CÔNG, fallback)

Nếu auto download fail (do firewall, proxy...), cài thủ công:

1. Vào <https://googlechromelabs.github.io/chrome-for-testing>
2. Tìm version Chrome của bạn (vd `130.0.6723.117`)
3. Tải **Win64 chromedriver**
4. Giải nén file `chromedriver.exe`
5. Đặt vào cùng folder Chrome:
   * **Installer**: `C:\Program Files\Google\Chrome\Application\`
   * **Portable**: cùng folder với `chrome.exe`

{% hint style="warning" %}
**Quyền ghi**: folder `Program Files` cần quyền admin. Nếu Windows chặn → copy/paste với "Run as administrator", hoặc cài Chrome portable.
{% endhint %}
{% endstep %}

{% step %}

## Bước 4 — Test mở Chrome qua MIN Automate

1. Trong app Browser → Browser Config
2. Nhấn **Mở trình duyệt** (sau khi đã có chromedriver)
3. Chrome mới mở ra (cửa sổ riêng, không phải Chrome thường của bạn)
4. Tab MIN Automate → sidebar hiện port `Port XXXXX` — kết nối thành công ✅
   {% endstep %}
   {% endstepper %}

## Cấu hình Chrome profile (tùy chọn)

Mặc định Chrome mở mới hoàn toàn (không có cookie, login, history). Để dùng **profile riêng** (giữ login khi mở lại):

### Trong Browser Config

1. Tick **Lưu profile**
2. Chọn folder để chứa profile (vd `D:\Chrome-Profiles\Account-1\`)
3. Nhập tên profile (hoặc chọn profile cũ trong dropdown)
4. Nhấn **Mở trình duyệt**

Lần sau mở với cùng profile name → cookie/login được giữ nguyên.

{% hint style="info" %}
**Mỗi account = 1 profile folder riêng**: chiến lược này giúp khi chạy batch nhiều account, mỗi account có 1 chrome riêng, không bị "đăng xuất account này khi login account khác".
{% endhint %}

## Cấu hình kích thước cửa sổ

Trong Browser Config có 2 ô **Width × Height**:

* **Width**: chiều rộng cửa sổ Chrome (px), tối thiểu 500
* **Height**: chiều cao cửa sổ Chrome (px), tối thiểu 100

Cài đặt này áp dụng cho mọi lần mở Chrome qua nút này.

## Lỗi thường gặp

<details>

<summary><strong>"Chrome binary not found"</strong></summary>

**Nguyên nhân**: MIN Automate không detect được Chrome trên máy.

**Xử lý**:

1. Tự nhập path Chrome vào ô **Chrome browser**
2. Path mặc định:
   * `C:\Program Files\Google\Chrome\Application\chrome.exe`
   * `C:\Program Files (x86)\Google\Chrome\Application\chrome.exe`
3. Nhấn nút folder bên cạnh để browse thủ công

</details>

<details>

<summary><strong>"chromedriver version mismatch"</strong></summary>

**Nguyên nhân**: chromedriver có version cũ hơn Chrome (Chrome đã auto-update).

**Xử lý**:

1. Nhấn lại nút **Tải chromedriver** trong Browser Config → app tự download bản match version mới
2. Hoặc thủ công: xóa chromedriver cũ → tải lại theo Bước 3

</details>

<details>

<summary><strong>Chrome mở nhưng không có nội dung gì (cửa sổ trống)</strong></summary>

**Nguyên nhân**: Chrome bị crash khi khởi động.

**Xử lý**:

1. Đóng tất cả Chrome đang chạy
2. Mở lại MIN Automate → Browser Config → Mở trình duyệt
3. Nếu vẫn lỗi: thử **xóa folder profile** đang dùng → mở lại
4. Antivirus chặn? → whitelist `chrome.exe` và `chromedriver.exe`

</details>

<details>

<summary><strong>"Permission denied" khi tải chromedriver</strong></summary>

**Nguyên nhân**: thư mục cài Chrome (`Program Files`) cần quyền admin.

**Xử lý**:

1. Đóng MIN Automate
2. Right-click MIN Automate → **Run as administrator**
3. Thử lại nút Tải chromedriver

Hoặc dùng Chrome portable + đặt chromedriver vào folder portable đó.

</details>

<details>

<summary><strong>Nhiều Chrome cùng mở bị conflict / chậm</strong></summary>

**Xử lý**:

1. Mỗi Chrome cần \~200-500MB RAM. 10 Chrome = 2-5GB RAM. Check máy đủ RAM không.
2. Trong batch run → cấu hình **Stagger delay** (3-10 giây) để không mở đồng thời tất cả
3. Mỗi Chrome dùng **profile riêng** (đừng share 1 profile cho nhiều Chrome → lỗi lock)

</details>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.minautomate.com/bat-dau/setup-chrome.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
