Chuyển tới nội dung chính

Bài 02 · Chờ và xác minh

Flow của Bài 01 có một khiếm khuyết: nó cho rằng cú chạm đã ăn. Bài này khiến flow chứng minh điều đó.

Bài toán

Chạm Claim Daily trên dashboard của Practice App và một popup phần thưởng mở ra — sau một hiệu ứng ngắn. Automation của bạn cần biết: popup có thực sự mở không?

Một node Click báo Success ngay khi cú chạm được gửi đi. Nó không hề biết chuyện gì xảy ra trên màn hình sau đó. Mọi flow đáng tin cậy bạn sẽ xây đều lấp khoảng trống ấy theo cùng một cách: hành động → chờ ổn định → xác minh.

Bạn sẽ học được

  • Vì sao hành động không chờ, và vì sao đó là chủ ý thiết kế.
  • Khuôn mẫu hành động → chờ ổn định → xác minh.
  • Node phát hiện đầu tiên của bạn, với hai lối ra mang nghĩa.
  • Cho thành công và thất bại hai kết thúc khác nhau.

Trước khi bắt đầu

  • Hoàn thành Bài 01.
  • Practice App mở tại dashboard.html.

Flow

Flow Bài 02 trong trình soạn thảo

Dựng flow

  1. Tạo flow mới. Thêm Click tên 1. Tap Claim Daily, vùng vẽ quanh nút Claim Daily.
  2. Thêm Wait (Chờ) tên 2. Let the popup animate. Thời lượng 800 ms, và điền popup open animation vào ô Reason — sáu tháng nữa bạn sẽ muốn biết con số này tồn tại vì lý do gì.
  3. Thêm Find Image (Tìm ảnh) tên 3. Did the popup open?. Trên Live Preview, khi popup đang mở (dashboard.html?popup=1), dùng Capture Template để bắt biểu tượng ngôi sao của popup. Timeout 3000 ms.
  4. Thêm hai Stop: Stop: verified (success, thông điệp Popup opened) và Stop: not verified (failure, thông điệp Popup did not open).
  5. Nối: Start → Click → Wait → Find Image; Find Image Success → verified, Failure → not verified.
  6. Save, Auto Layout.

Vì sao dùng từng node

NodeVai tròTruyền đi cái gì
ClickThực hiện cú chạmKhông gì node sau dùng — chỉ quyền điều khiển
WaitHấp thụ thời gian hiệu ứngQuyền điều khiển, sau 800 ms
Find ImageBước xác minh: liên tục chụp màn hình mới và so templateRoute của nó — Success (thấy) hoặc Failure (không thấy kịp lúc)
Hai StopBiến phán quyết thành hai kết cục rõ ràngTrạng thái cuối + thông điệp

Vì sao Wait quan trọng: phát hiện đọc một ảnh chụp màn hình mới. Không có bước chờ, Find Image có thể vớ đúng khung hình giữa hiệu ứng — hoặc trước khi popup kịp tồn tại — và báo "không thấy" với một popup sắp hiện ra.

Vì sao Find Image kiêm luôn vai trò chờ: nó chụp lại và so lại mỗi chu kỳ poll (250 ms) cho đến khi khớp hoặc hết 3000 ms timeout. Nó trả về ngay khoảnh khắc biểu tượng xuất hiện. Nên 800 ms Wait cộng 3000 ms timeout không phải "3,8 giây chờ đợi" — lần chạy điển hình xác minh xong trong khoảng một giây.

"Không thấy" không phải là lỗi

Khi Find Image hết giờ mà không khớp, status của nó vẫn là success — bản thân việc tìm kiếm đã chạy đúng. Chỉ route là Failure. Sự phân biệt này xuyên suốt sản phẩm: một lần không-thấy không bao giờ kích hoạt retry và không bao giờ tính vào ngưỡng lỗi liên tiếp. Mô hình thực thi giải thích tại sao.

Chạy thử

Chạy trên dashboard trơn. Kỳ vọng: popup mở, Find Image khớp trong vòng một giây, lần chạy kết thúc success / Popup opened.

Giờ thử ca âm tính: tắt trang (hoặc điều hướng giả lập đi chỗ khác) rồi chạy lại. Cú chạm không trúng gì, popup không mở, và sau 3 giây lần chạy kết thúc failure / Popup did not openflow nói cho bạn sự thật thay vì giả vờ.

Best practices

  • Xác minh mọi hành động quan trọng. Chạm → chờ → kiểm là xương sống của automation đáng tin.
  • Điền ô Reason của Wait. Những khoảng chờ không ghi chú là cách flow mục nát dần.
  • Cho hai kết cục hai Stop với hai thông điệp. Một Stop dùng chung che mất chuyện thực sự xảy ra.
  • Bắt template ôm sát. Riêng biểu tượng ngôi sao, không phải cả popup — pixel nền là thứ phá vỡ so khớp về sau.

Lỗi thường gặp

LỗiHậu quảCách sửa
Không chờ trước khi xác minhPhát hiện đọc khung hình giữa hiệu ứngGiữ node Wait
Xác minh bằng một Wait mù khácSau nó bạn không biết thêm gìXác minh bằng phát hiện
Một Stop cho cả hai kết cụcNhật ký không phân biệt được thành/bạiHai Stop, hai thông điệp
Template dính nền popupSo khớp vỡ khi bất kỳ thứ gì xê dịchCắt sát biểu tượng

Khắc phục sự cố

Xác minh trượt dù popup đã mở. Tăng Wait lên 1200 ms — máy chậm chạy hiệu ứng lâu hơn. Vẫn trượt thì bắt lại template; nhiều khả năng nó dính nền.

Xác minh đậu tức thì cả khi không có popup. Template của bạn quá chung chung và khớp thứ khác trên màn hình. Bắt lại một mảnh cắt chặt hơn, đặc trưng hơn.

Flow chạy chậm. Không nên thế — Find Image trả về ngay lần khớp đầu. Nếu lần nào cũng ngốn trọn timeout, template không bao giờ khớp và bạn đang sống trên nhánh Failure; sửa template đi.

Tóm tắt

  • Hành động báo "đã gửi", không phải "đã ăn". Hành động → chờ → xác minh.
  • Node phát hiện vừa là phép kiểm vừa là phép chờ thông minh — nó trả về ngay khi điều kiện thỏa.
  • Route của phát hiện (thấy / không thấy) tách khỏi status, và mỗi kết cục xứng đáng một Stop riêng.

Tiếp theo

Bạn đã xác minh rằng có thứ xuất hiện. Bài 03 · Tìm và nhấp đảo ngược quan hệ: tìm trước, rồi thao tác đúng chỗ vừa tìm thấy — không còn tọa độ nào trong flow.

Xem thêm: Wait · Find Image · Retry và thất bại