Bỏ qua, đến nội dung

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.

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

yaml
- 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ì text và id mặ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: true và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ómPhù hợp nhất cho
Selector cốt lõiNhữ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áiKiểm tra trạng thái chức năng (enabled, checked, focused hoặc selected).
Bộ khớp kích thướcNhắm theo kích thước vật lý (width, height) với tolerance.