Xác định đối tượng giao diện UI trong ứng dụng Android

Appium được phát triển từ Selenium nên Appium cũng hỗ trợ các cách xác định đối tượng UI tương tự như Selenium, bao gồm: ID, Xpath, Class, Name…. Một điểm đặc điểm khác biệt là, trong lập trình ứng dụng Android, chúng ta không sử dụng CSS để định dạng các đối tượng UI nên Appium không hỗ trợ phương thức xác định đối tượng UI thông qua CSSSelector.

Sử dụng UIAutomatorViewer

Đối với ứng dụng Android, chúng ta sử dụng công cụ UIAutomatorViewer để có thể đọc được mã nguồn giao diện UI của ứng dụng. Tương tự, chúng ta cũng có một công cụ tương ứng như vậy đối với ứng dụng iOS. Công cụ UIAutomatorViewer có thể được tìm thấy trong thư mục tools sau khi cài đặt Android SDK.

  1. Kết nối thiết bị thực/ảo với máy tính PC
  2. Khởi động ứng dụng trên thiết bị và đi đến màn hình cần thiết
  3. Khởi động công cụ UIAutomatorViewer trên PC
  4. Nhấn nút Device Screenshot để hiển thị thông tin của đối tượng UI

Dưới đây là ví dụ dùng UIAutomatorViewer với thiết bị thật, ứng dụng ví dụ các bạn có thể tải từ Google Play:

Sử dụng Appium Inspector

Trong ứng dụng Appium Server, hệ thống Appium hỗ trợ một công cụ riêng dùng để xác định các đối tượng UI. Công cụ này chỉ có thể sử dụng sau khi khởi động Appium Server và thiết lập các cấu hình để kết nối với thiết bị. Điểm đặc biệt của công cụ này là chúng ta có thể tương tác (chạm và truyển ký tự) với thiết bị đồng thời có thể ghi lại các hành động tương tác và phát sinh các mã kiểm thử.

  1. Kết nối thiết bị thực/ảo với máy tính PC
  2. Khởi động ứng dụng Appium Server
  3. Khởi động một phiên hoạt động với các thông tin cấu hình tương ứng của thiết bị và ứng dụng (package và activity)
  4. Khởi động chức năng ghi nhận hành động (nếu cần)
  5. Lựa chọn các đối tượng UI trên phần thông tin và tương tác (nếu cần)

Dưới đây là ví dụ dùng Appium Inspector với thiết bị ảo, ứng dụng ví dụ các bạn có thể tải từ đây:

Vài phương thức xác định đối tượng UI với Appium

  • ID: Trong ứng dụng Android, chúng ta có resource-id và appium sử dụng giá trị này trong quá trình xác định đối tượng UI – ID.
  • XPath: Cấu trúc của các đối tượng UI trong ứng dụng được sắp xếp với định dạng XML, vậy nên chúng ta có thể sử dụng XPath cùng với các cú pháp và hàm xử lý của XPath để xác định đối tượng UI một cách chính xác và đơn nhất/unique.
  • Classname: Khác với Selenium, class là một thuộc tính của thẻ HTML, với Appium, giá trị Class chính là tên của thẻ XML.
  • Name/Text: Tương ứng với giá trị ký tự được hiển thị trên giao diện của ứng dụng.