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

Bài 01 · Flow đầu tiên

Ba node. Một cú chạm. Mọi thứ còn lại của khóa học đều xây trên những gì ba node này dạy bạn.

Bài toán

Dashboard của Practice App có nút Collect. Bạn muốn giả lập tự chạm vào nó — mà bạn không đụng tay vào gì cả.

Đó chính là automation ở dạng nhỏ nhất có thể: khi tôi chạy flow này, máy thực hiện một hành động trên màn hình.

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

  • Flow gồm những gì: node, port, edge.
  • Một lần chạy đi từ Start đến Stop như thế nào.
  • Cách đặt node, nối dây, lưu và chạy.
  • Vì sao mọi flow nên kết thúc ở một Stop tường minh.

Trước khi bắt đầu

  • Practice App đang mở trong giả lập tại dashboard.html.
  • Instance của bạn hiển thị Online trên Instance Dashboard.

Flow

Và trong trình soạn thảo thật, sau khi Auto Layout:

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

Dựng flow

  1. Ở màn hình Flows, chọn Create New Flow. Flow mới mở ra với một node Start sẵn trên canvas — mọi flow đều bắt đầu bằng đúng một Start.
  2. Từ hộp công cụ bên trái, nhóm Actions, thêm một node Click (Nhấp).
  3. Đặt tên 1. Tap the Collect button. Đánh số tên node theo thứ tự đọc là thói quen nên tập ngay từ giờ — trên canvas lớn, nó giúp đọc flow trong một cái liếc mắt.
  4. Trong Properties panel của node, đặt đích chạm: vẽ một Click Region ôm sát nút Collect trên Live Preview (chọn Select Directly On Live Preview → Save Region, hoặc gõ tọa độ hình chữ nhật).
  5. Nhóm Control, thêm một node Stop (Dừng). Đặt Final statussuccessMessageTapped Collect.
  6. Nối dây: kéo từ port Success của Start sang node Click, rồi từ port Success của Click sang Stop.
  7. Save, rồi bấm Auto Layout (nút trên toolbar) — để trình soạn thảo tự sắp xếp các thẻ.

Vì sao dùng từng node

NodeVai tròTruyền đi cái gì
StartĐiểm vào duy nhất. Bản thân nó không làm gìQuyền điều khiển, qua port Success
ClickHành động duy nhất: chạm một điểm ngẫu nhiên trong vùng bạn vẽQuyền điều khiển; output ghi lại vị trí đã chạm
StopTuyên bố kết cục của lần chạyKhông gì cả — nó kết thúc lần chạy với success và thông điệp của bạn

Hai ý tưởng ẩn trong flow bé xíu này:

Port là lối ra, edge là con đường. Node không bao giờ quyết định flow đi đâu — nó chỉ báo mình rời qua port nào. Edge bạn vẽ mới quyết định điều gi đến tiếp theo. Chính sự tách bạch đó cho phép bạn nối lại dây một flow mà không đụng vào thiết lập của bất kỳ node nào.

Click Region chạm một điểm ngẫu nhiên bên trong nó, mỗi lần chạy. Không phải tâm vùng — mỗi lần là một điểm ngẫu nhiên mới, để các lần chạy lặp lại không gõ mãi một pixel. Đó cũng là lý do bạn vẽ vùng ôm sát nút.

Chạy thử

Chọn Run trên flow (hoặc Test Flow trong trình soạn thảo). Runtime sẽ:

  1. Tạo một session và đặt node hiện tại là Start.
  2. Start rời qua Success → edge dẫn tới Click của bạn.
  3. Click chọn một điểm ngẫu nhiên trong vùng, gửi cú chạm, rời qua Success.
  4. Stop kết thúc lần chạy: trạng thái success, thông điệp Tapped Collect.

Kết quả kỳ vọng: trong giả lập, trang Collect mở ra (nút đó điều hướng sang trang ấy). Nhật ký chạy hiển thị ba node đã thực thi và kết thúc bằng thông điệp của bạn.

Best practices

  • Đặt tên node theo ý định, đánh số theo thứ tự1. Tap the Collect button, không phải Click 1.
  • Vẽ click region ôm sát. Điểm ngẫu nhiên phải luôn rơi trúng nút.
  • Luôn kết thúc ở Stop có thông điệp. Thông điệp đó là thứ bạn sẽ đọc trong nhật ký lúc 2 giờ sáng.
  • Auto Layout trước khi chụp ảnh hoặc chia sẻ flow — canvas gọn gàng là canvas đọc được.

Lỗi thường gặp

LỗiHậu quảCách sửa
Vùng vẽ lỏng quanh nútVài lần chạy chạm trượt ra ngoàiThu hẹp hình chữ nhật
Không có Stop — flow "tự hết"Lần chạy kết thúc bằng TRANSITION_NOT_FOUND thay vì thông điệp của bạnNối mọi nhánh về một Stop
Kỳ vọng flow đợi màn hình mớiClick trả về ngay khi cú chạm được gửiĐó là nội dung Bài 02

Khắc phục sự cố

Lần chạy thành công nhưng không có gì được chạm. Trang Practice App có lẽ không phải màn hình đang hiện trong giả lập. Đưa dashboard.html lên trước rồi chạy lại.

Lần chạy kết thúc với TRANSITION_NOT_FOUND. Một port không có edge đã được đi qua. Kiểm tra Start → Click → Stop nối đủ qua các port Success.

Cú chạm rơi cạnh nút. Vùng của bạn quá to. Vẽ lại ôm đúng cái nút.

Tóm tắt

  • Flow là các node (bước) nối bằng edge (đường) giữa các port (lối ra).
  • Runtime đi qua từng node một, từ Start đến Stop.
  • Click chạm một điểm ngẫu nhiên trong vùng và không đợi màn hình phản ứng.
  • Mọi nhánh nên kết thúc ở một Stop nói rõ chuyện gì đã xảy ra.

Tiếp theo

Cú chạm đã ăn — nhưng flow chỉ cho rằng nó ăn. Bài 02 · Chờ và xác minh khiến flow chứng minh màn hình đã thay đổi — thói quen quan trọng bậc nhất trong automation màn hình.

Xem thêm: Click · Stop · Mô hình thực thi