Với các bài toán automation liên quan đến popup, toast và loading, điểm khó nhất không phải là thao tác click hay đọc text, mà là tính chất ngắn hạn và bất đồng bộ của các thành phần này. Nếu xử lý không đúng, test rất dễ bị fail ngẫu nhiên hoặc bỏ lỡ trạng thái cần kiểm tra.

Trước hết, với popup (modal, dialog, confirm…), cần xác định rõ loại popup đang xuất hiện là popup của trình duyệt, popup của hệ thống hay popup được dựng bằng UI của ứng dụng. Mỗi loại có cách xử lý khác nhau. Về nguyên tắc, test script không nên tiếp tục thực thi các bước bên dưới khi popup chưa được hiển thị đầy đủ. Cần consider popup như một “màn hình con”, có trạng thái hiển thị rõ ràng, và chỉ thực hiện các thao tác khi popup đã sẵn sàng. Ngoài ra, locator cho popup nên dựa vào container hoặc root element của popup, tránh định vị trực tiếp các nút bên trong khi popup chưa thực sự xuất hiện.

Đối với toast hoặc notification, khó khăn lớn nhất là chúng thường xuất hiện rất nhanh và tự động biến mất. Vì vậy, nếu dùng sleep hoặc chờ không đúng thời điểm, test rất dễ không bắt được toast. Cách làm đúng là cần có cơ chế chờ sự xuất hiện của toast trước, sau đó mới đọc nội dung hoặc kiểm tra trạng thái, và không phụ thuộc vào việc toast còn hiển thị trong bao lâu. Trong nhiều hệ thống, thay vì kiểm tra đúng toàn bộ text hiển thị, nên ưu tiên kiểm tra các phần ổn định như loại thông báo (success, error, warning) hoặc một phần nội dung chính.

Với loading, spinner hoặc progress indicator, đây là yếu tố ảnh hưởng trực tiếp đến độ ổn định của automation. Test chỉ nên thao tác khi hệ thống đã thực sự sẵn sàng. Tuy nhiên, không nên chỉ chờ spinner xuất hiện rồi biến mất một cách máy móc, vì có những trường hợp loading rất nhanh, spinner không kịp hiển thị, hoặc có nhiều lớp loading khác nhau. Hướng xử lý tốt hơn là kết hợp giữa việc chờ loading kết thúc và chờ điều kiện sẵn sàng của phần UI mục tiêu, chẳng hạn như một nút có thể click được hoặc một bảng dữ liệu đã có dòng hiển thị.

Một điểm rất quan trọng là popup, toast và loading thường liên quan trực tiếp đến các thao tác bất đồng bộ như gọi API, lưu dữ liệu hoặc điều hướng màn hình. Vì vậy, nếu test script không được thiết kế để đồng bộ đúng với trạng thái của hệ thống, thì dù locator đúng, test vẫn rất dễ bị flaky.

  Kết luận: khi xử lý các trường hợp liên quan đến Popup, toast, loading trong automation, tư duy đúng là tập trung vào việc đồng bộ theo trạng thái hiển thị thực tế của UI, xác định rõ thời điểm chúng xuất hiện và biến mất, và chỉ kiểm tra những thông tin thực sự cần thiết. Việc xử lý tốt nhóm thành phần này giúp cải thiện đáng kể độ ổn định và độ tin cậy của bộ test automation.

Last modified: Monday, 2 March 2026, 9:06 AM