Tôi đang cố gắng xác định chế độ xem gốc của phần tử ui để tôi có thể điều hướng thông qua giao diện người dùng một cách tự do.Làm thế nào tôi có thể nhận được phụ huynh của một cái nhìn bằng cách sử dụng uiautomator?
Ví dụ, trong ứng dụng Settings, tôi có thể tìm thấy những cái nhìn với dòng chữ "Bluetooth":
UiObject btView = new UiObject(new UiSelector().text("Bluetooth"));
Bây giờ, phần nơi tôi gặp khó khăn là thế này một: Tôi muốn hướng hai cấp độ và bắt đầu tìm kiếm mới cho nút bật/tắt cho phép và tắt bluetooth.
Lưu ý: Tôi có thể nhận được nút nếu tôi sử dụng mã bên dưới.
UiObject btButtonView = new UiObject(new UiSelector().className("android.widget.Switch").instance(1));
Tìm kiếm này cho nút chuyển và trả về lần hiển thị thứ hai. Tôi muốn tìm kiếm chính xác hơn và tìm nút trong bố cục tuyến tính có chứa văn bản "Bluetooth".
UPDATE: Đây là cách bố trí của ứng dụng Settings (phần Bluetooth mà tôi cần):
LinearLayout
LinearLayout
ImageView
RelativeLayout
TextView (with text = "Bluetooth")
Switch()
Phương pháp này không hoạt động. Các UiObject hai cấp độ lên là một LinearLayout, nhưng nó không có thuộc tính văn bản. Vì vậy, tôi không thể xác định nó bằng văn bản "Bluetooth". Đã cập nhật câu hỏi với bố cục thực tế của ứng dụng. –
Nó hoạt động. Bạn không xác định bằng văn bản của LinearLayout. "Có vẻ như bất kỳ đứa trẻ nào phù hợp với đối số childPattern có phần tử giao diện người dùng con ở bất kỳ đâu trong phân cấp phụ có thuộc tính văn bản bằng văn bản". Nói cách khác, bạn tìm một LinearLayout có một con với Bluetooth văn bản. – Anders
Có, nó hoạt động. Có vẻ như tôi đã làm điều gì đó sai lần đầu tiên. –