> For the complete documentation index, see [llms.txt](https://docs.gpmautomate.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.gpmautomate.com/huong-dan-cac-action/cac-block/huong-dan-viet-dieu-kien.md).

# Hướng dẫn viết Điều kiện

🎥 Xem thêm video hướng dẫn: [Tại đây](https://youtu.be/L-w9dT8B2DM).

> ⚠️ Quy tắc cốt lõi về Chuỗi (String): Đối với kiểu dữ liệu là chữ/chuỗi, bạn bắt buộc phải bọc trong dấu ngoặc kép `""` (Ví dụ: `$name = "admin"`). Đối với số thì điền trực tiếp.

#### 1. Các toán tử so sánh Số học (Chỉ áp dụng cho Số)

* `>` : Lớn hơn. (Ví dụ: `$count > 5`)
* `<` : Nhỏ hơn. (Ví dụ: `$loopIndex < 10`)
* `>=` : Lớn hơn hoặc bằng.
* `<=` : Nhỏ hơn hoặc bằng.

#### 2. Các toán tử so sánh Logic (Áp dụng cho cả Số và Chuỗi)

* `=` : Bằng nhau.
  * *Ví dụ*: `3 = 3` ➡️ `true`
  * *Ví dụ*: `"hello" = "hola"` ➡️ `false`
* `!=` : Khác nhau (Phủ định của phép bằng).
  * *Ví dụ*: `3 != 4` ➡️ `true`
  * *Ví dụ*: `"hello" != "hello"` ➡️ `false`

#### 3. Các toán tử xử lý Chuỗi (String)

* `contains` : Kiểm tra xem chuỗi phía trước có chứa chuỗi phía sau hay không.
  * *Ví dụ*: `"ABCD" contains "AB"` ➡️ `true`
  * *Ví dụ*: `"AB" contains "ABCD"` ➡️ `false`
* `!contains` : Kiểm tra xem chuỗi phía trước có KHÔNG chứa chuỗi phía sau hay không.
  * *Ví dụ*: `!"ABCD" contains "AB"` ➡️ `false`
  * *Ví dụ*: `!"AB" contains "ABCD"` ➡️ `true`
* `contains "B"` (Khi đứng một mình trước B): Kiểm tra xem biến hoặc chuỗi cần xét có phải là chuỗi rỗng hay không.
  * *Kết quả*: Trả về `true` nếu rỗng, và `false` nếu có chứa dữ liệu.

#### 4. Hàm kiểm tra phần tử trên giao diện (Element)

Hàm này giúp kịch bản nhận diện sự xuất hiện của các nút bấm, ô nhập liệu... trên trang web thông qua đường dẫn XPath:

* `hasElement(XPATH)` : Điều kiện đúng khi phần tử có tồn tại trên trang.
* `!hasElement(XPATH)` : Điều kiện đúng khi phần tử không tồn tại trên trang (Phủ định của `hasElement`).

#### 5. Cách kết hợp nhiều điều kiện phức tạp

Bạn có thể kết hợp nhiều điều kiện lại với nhau trong một hàng bằng cách sử dụng các ký hiệu logic và dấu ngoặc đơn `()` để gom nhóm:

* `&&` : Phép VÀ (Tất cả các điều kiện phải đồng thời đúng).
* `||` : Phép HOẶC (Chỉ cần một trong các điều kiện đúng là được).

Ví dụ thực tế khi viết điều kiện:

* *Trường hợp 1*: Kiểm tra số lượt lặp lớn hơn 5 và tên tài khoản có chứa chữ "abc":

  ```
  $count > 5 && $name contains "abc"
  ```
* *Trường hợp 2*: Kiểm tra nếu không xuất hiện nút Login (đã đăng nhập) HOẶC biến báo lỗi đang hiển thị chữ "true":

  ```
  !hasElement(//div[@id='x']) || $error = "true"
  ```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.gpmautomate.com/huong-dan-cac-action/cac-block/huong-dan-viet-dieu-kien.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
