Cách dùng selector
Xác định phần tử UI bằng selector theo văn bản, ID, vị trí và trạng thái.
Selector là logic nền tảng Astra Scout dùng để nhận diện phần tử UI. Mặc định, Astra Scout tương tác với Accessibility Tree, nghĩa là nó nhìn app giống như người dùng cuối hoặc device hỗ trợ tiếp cận.
Hướng dẫn tương tác
Hầu hết lệnh, như tapOn, assertVisible, copyTextFrom và scrollUntilVisible, cần một selector để biết tác động lên phần nào của màn hình. Bạn có thể khai báo selector bằng hai định dạng.
Khi chỉ cần khớp phần tử theo văn bản hiển thị, bạn có thể dùng một chuỗi đơn giản. Đây là cách nhanh nhất để viết test dễ đọc cho nội dung tĩnh.
- tapOn: Login # Astra Scout tự hiểu đây là { text: "Login" }Để chính xác hơn, bạn có thể kết hợp nhiều property trong một khối selector. Astra Scout chỉ khớp phần tử thỏa mọi điều kiện đã cho (logic AND). Điều này cần thiết khi làm việc với UI động, nhiều nút giống nhau hoặc phần tử đổi trạng thái.
- tapOn:
id: submit_button # ID kỹ thuật
enabled: true # Chỉ khi bấm được
below: Password # Nằm ở một vùng cụ thểThực hành tốt
Để bộ test luôn dễ bảo trì và không flaky khi app phát triển, hãy theo các nguyên tắc sau:
- Ưu tiên văn bản người dùng nhìn thấy: bất cứ khi nào có thể, dùng selector
text. Cách này đảm bảo test kiểm tra đúng những gì người dùng thực sự thấy và giúp test dễ đọc vì selector tự mô tả. Nếu văn bản đổi và làm hỏng test, thường nghĩa là trải nghiệm người dùng cũng đã đổi. - Dùng ID để ổn định: với icon, hình ảnh, hoặc app hỗ trợ nhiều ngôn ngữ (bản địa hóa), dùng
id(Accessibility Identifier). Chúng ẩn với người dùng nhưng không đổi giữa các ngôn ngữ. - Neo bằng logic quan hệ: nếu phần tử động hoặc không có ID duy nhất, hãy tìm một "điểm neo" ổn định (như tiêu đề một mục) và dùng selector quan hệ (ví dụ
below: "Personal Information") để xác định đúng đích. - Xử lý giá trị động bằng regex: vì
textvàidmặc định dựa trên regex, hãy dùng các pattern như.*để xử lý chuỗi thay đổi. - Kiểm tra trạng thái trước khi thao tác: khi chạm một nút phụ thuộc vào cuộc gọi API hoặc validate form, hãy thêm
enabled: truevào selector. Astra Scout sẽ tự động chờ nút tương tác được trước khi thử chạm.
Reference về selector
Khám phá các trang reference chuyên biệt này để tìm đúng công cụ cho mọi tình huống UI:
| Nhóm | Phù hợp nhất cho |
|---|---|
| Selector cốt lõi | Những thứ cơ bản: text, id, index và point. |
| Selector quan hệ | Tìm phần tử theo vị trí hiển thị (above, below) hoặc cấu trúc (childOf). |
| Đặc tính phần tử | Lọc theo đặc điểm vật lý như square hay long-text. |
| Selector trạng thái | Kiểm tra trạng thái chức năng (enabled, checked, focused hoặc selected). |
| Bộ khớp kích thước | Nhắm theo kích thước vật lý (width, height) với tolerance. |
