Bỏ qua, tới nội dung chính

Tự động hóa

UI Inspector: chỉ vào thứ cần bấm

Soi màn hình máy, click vào đúng cái nút bạn muốn, để trình soạn thảo tự viết node — thay vì đoán toạ độ hay gõ tay điều kiện tìm phần tử.

5 phút đọc

Một kịch bản chỉ tốt bằng đúng cái thứ mà nó chỉ vào. Bảo node Bấm (Click) chạm vào điểm 540, 1180 thì nó chạy được — cho tới cái máy tiếp theo, độ phân giải tiếp theo, hoặc lần tiếp theo app dời cái nút đó xuống một hàng.

UI Inspector là cách để bạn thôi đoán. Trình soạn thảo mô tả nó trong đúng một câu: "Công cụ soi màn hình máy để chọn đúng phần tử cần thao tác, rồi tạo hoặc cập nhật node từ phần tử đó thay vì gõ tay."

Bạn chỉ vào cái nút. Inspector viết node giúp bạn.

Mở lên và bấm Làm mới

Nút Inspector nằm trên thanh công cụ của trình soạn thảo, giữa AIPhiên thuê (Session) — cả thanh công cụ được bày ra ở bài Tạo kịch bản đầu tiên.

Mở nó lên rồi bấm Làm mới. Một cú bấm làm hai việc: chụp ảnh màn hình máy, và đọc cấu trúc của đúng màn hình đó. Ảnh và cấu trúc luôn được lấy cùng một lúc, nên thứ bạn click trên ảnh và thứ bạn thấy trong danh sách chắc chắn là cùng một khoảnh khắc.

Vùng Màn hình của UI Inspector: ảnh chụp màn hình máy, phần tử Storage đang được khoanh chọn

Element là gì

Mọi thứ bạn có thể chỉ vào đều là một element. Nguyên văn app viết:

"Mỗi nút bấm, ô nhập, dòng chữ, icon trên màn là một element."

Và ở chỗ nó thật sự quan trọng, trong dòng gợi ý của chính node Bấm: "Element là một thành phần trên màn hình (nút, ô nhập, dòng chữ). Chọn tọa độ cố định, hoặc để máy tự tìm element rồi bấm vào đó."

Vế sau mới là cái bạn muốn, và Inspector sinh ra để viết hộ bạn vế đó.

Ba vùng trên giao diện

Màn hình

"Ảnh chụp máy lúc bấm Làm mới. Click vào phần tử trên ảnh để chọn."

Cây

"Cấu trúc phân cấp mọi phần tử trên màn. Click một dòng để chọn, phần tử khớp matcher được đánh dấu."

Chi tiết

"Prop của phần tử đang chọn và khối Matcher. Click dòng prop để thêm hoặc bỏ điều kiện, rồi bấm Tạo node hoặc Cập nhật node."

Ảnh màn hình và cây là hai đường đi vào; vùng chi tiết là nơi bạn làm gì đó với kết quả. Chính Inspector nói vậy khi bạn chưa chọn gì — vùng chi tiết hiện dòng "Chưa chọn phần tử — click vào ảnh màn hình hoặc cây bên trái."

Vùng Cây của UI Inspector: danh sách phân cấp mọi phần tử trên màn hình, dòng TextView Storage đang được chọn

Vùng Chi tiết của UI Inspector: khối Matcher với điều kiện text chứa Storage, dòng Khớp 1 phần tử trên màn này, và bảng Prop/Value của phần tử

Chọn đúng thứ bạn muốn

Click thẳng trên ảnh. Nhanh nhất khi bạn nhìn thấy cái nút — bạn được đúng phần tử nằm dưới con trỏ.

Hoặc tìm trong cây. Hợp với những thứ không click được: phần tử không có chữ, phần tử nằm dưới một cái khác, hoặc cả một hàng khi bạn cứ trúng mỗi cái nhãn nằm bên trong nó.

Đọc prop ở vùng Chi tiết. Một bảng gồm cột PropValue — app gọi thứ này là gì, nó đang hiện chữ gì, nó thuộc loại widget nào.

Biến một prop thành điều kiện. Click vào dòng đó. Dòng gợi ý trên mỗi hàng nói thẳng: "Click để thêm/bỏ điều kiện matcher", và điều kiện rơi xuống khối Matcher bên dưới.

Nhắm tới đúng một phần tử. Khối Matcher cho bạn biết bộ điều kiện hiện tại đang tóm được bao nhiêu phần tử trên màn này.

Bấm Tạo node — hoặc Cập nhật node… để gắn matcher vào một node bạn đã dựng sẵn.

Bạn vừa tóm được bao nhiêu phần tử

Đây là con số duy nhất phải để mắt tới, và mẹo đầu tiên của chính Inspector nói về nó:

Chọn điều kiện sao cho "Khớp 1 phần tử". Khớp nhiều thì thêm điều kiện, không khớp thì bớt.

Hai câu khác mà khối Matcher có thể nói với bạn, câu nào cũng đáng dừng lại:

  • "Không khớp phần tử nào trên màn này" — bộ điều kiện của bạn không tóm được gì cả. Hoặc một điều kiện quá chặt, hoặc bạn gõ đè lên một giá trị.
  • Một dòng cảnh báo rằng điều kiện có khớp vài phần tử nhưng không gồm phần tử bạn đang chọn. Kịch bản vẫn chạy, và nó sẽ bấm nhầm. Đây đúng là loại lỗi khó phát hiện nhất về sau, mà Inspector thì đưa tận tay bạn ngay lúc này.

Nếu phần tử không có gì đọc được, khối Matcher nói luôn và chỉ đường đi tiếp: "Không có text / desc — click prop resource-id hoặc class".

Nên bám vào prop nào, và bốn cách so sánh, là nội dung của bài Làm cho thao tác bấm sống được lâu.

Tạo node mới, hay cập nhật node đang có

Tạo node cho bạn một node mới, matcher đã điền sẵn.

Cập nhật node… lấy matcher bạn vừa dựng gán vào một node đã nằm trong kịch bản — tiện đúng lúc app dời một cái nút mà phần còn lại của kịch bản vẫn chạy tốt.

Cập nhật là thay, không phải gộp thêm. Hộp thoại ghi rõ: matcher được gán "vào node đã chọn. Matcher cũ của node sẽ bị thay hoàn toàn."

Nếu node bạn chọn đang bấm theo toạ độ cố định, bạn cũng được báo: "Node đang dùng toạ độ — sẽ chuyển sang chọn theo element." Đó thường là một bước tiến, nhưng vẫn là một thay đổi, nên hãy đọc dòng đó trước khi xác nhận.

Nếu không có gì để cập nhật, lý do đơn giản là kịch bản chưa có node nào nhận element — hộp thoại ghi Graph chưa có node nào nhận matcher. Tạo node mới bằng nút "Tạo node".

Màn hình đổi thì bấm Làm mới

Ảnh trong Inspector là một tấm ảnh chụp, không phải màn hình trực tiếp. Bạn vừa chạm vào máy một cái là Inspector đang cho bạn xem quá khứ.

"Màn hình máy đổi thì bấm Làm mới. Ảnh và cây luôn là một cặp chụp cùng lúc."

Dựng kịch bản theo từng màn hình nghĩa là lặp đúng một vòng ngắn: lái máy tới màn hình cần dựng, Làm mới, chọn phần tử, tạo node. Rồi sang màn kế tiếp.

Tóm tắt

  1. Nút Inspector trên thanh công cụ; Làm mới chụp ảnh và đọc cây phần tử thành một cặp.
  2. Ba vùng: Màn hình để click thứ nhìn thấy, Cây để với tới thứ không click được, Chi tiết để đọc prop và dựng matcher.
  3. Click dòng prop để thêm điều kiện, và nhắm tới "Khớp 1 phần tử" — khớp nhiều thì thêm, không khớp thì bớt.
  4. Tạo node dựng node mới; Cập nhật node… thay hoàn toàn matcher của node đang có.
  5. Màn hình máy đổi là bấm Làm mới lại.