Test Uiautomator
| Bản cập nhật mới nhất | Bản phát hành ổn định | Bản phát hành dùng thử | Bản phát hành beta | Bản phát hành alpha | 
|---|---|---|---|---|
| Ngày 13 tháng 8 năm 2025 | 2.3.0 | - | - | 2.4.0-alpha06 | 
Khai báo phần phụ thuộc
Để thêm một phần phụ thuộc trên kiểm thử, bạn phải thêm kho lưu trữ Maven của Google vào dự án. Đọc nội dung Kho lưu trữ Maven của Google để biết thêm thông tin.
Thêm các phần phụ thuộc cho cấu phần phần mềm bạn cần trong tệp build.gradle cho ứng dụng hoặc mô-đun:
Groovy
dependencies { // Use to implement UIAutomator tests androidTestImplementation "androidx.test.uiautomator:uiautomator:2.4.0-alpha06" }
Kotlin
dependencies { // Use to implement UIAutomator tests androidTestImplementation("androidx.test.uiautomator:uiautomator:2.4.0-alpha06") }
Để biết thêm thông tin về các phần phụ thuộc, hãy xem bài viết Thêm phần phụ thuộc vào bản dựng.
Ý kiến phản hồi
Ý kiến phản hồi của bạn có thể giúp chúng tôi cải thiện Jetpack. Hãy cho chúng tôi biết nếu bạn phát hiện lỗi mới hoặc có ý tưởng cải thiện thư viện này. Vui lòng xem các lỗi hiện có trong thư viện này trước khi báo một lỗi mới. Bạn có thể thêm lượt bình chọn cho lỗi hiện có bằng cách nhấp vào nút dấu sao.
Xem tài liệu về Công cụ theo dõi lỗi để biết thêm thông tin.
Test Uiautomator Shell Phiên bản 1.0
Phiên bản 1.0.0-alpha02
Ngày 13 tháng 8 năm 2025
Phát hành androidx.test.uiautomator:uiautomator-shell:1.0.0-alpha02. Phiên bản 1.0.0-alpha02 bao gồm các thay đổi sau.
Phiên bản 1.0.0-alpha01
Ngày 18 tháng 6 năm 2025
Phát hành androidx.test.uiautomator:uiautomator-shell:1.0.0-alpha01. Phiên bản 1.0.0-alpha01 bao gồm các thay đổi sau.
Tính năng mới
- Phiên bản alpha đầu tiên của thư viện shell ui-automator để thực thi các lệnh shell dưới dạng người dùng shell. Thư viện này cho phép đọc stdout, stderr và ghi vào stdin của một quy trình sh do shell khởi chạy. Trên thực tế, nó sẽ sao lưu 
UiAutomation#executeShellCommandRweđược ra mắt trong api 34. 
Phiên bản 2.4
Phiên bản 2.4.0-alpha06
Ngày 13 tháng 8 năm 2025
Phát hành androidx.test.uiautomator:uiautomator:2.4.0-alpha06. Phiên bản 2.4.0-alpha06 bao gồm các thay đổi sau.
Tính năng mới
- Đã thêm các API dựa trên cửa sổ để cải thiện hoạt động kiểm thử nhiều cửa sổ, tức là giờ đây bạn có thể dùng 
UiDevice#findWindowđể tìm mộtUiWindowcụ thể theoByWindowSelectorđược tạo bằng các phương thức của nhà máyBy.Window. (I359c4, I40528, I8c963) 
Phiên bản 2.4.0-alpha05
Ngày 18 tháng 6 năm 2025
Phát hành androidx.test.uiautomator:uiautomator:2.4.0-alpha05. Phiên bản 2.4.0-alpha05 bao gồm các thay đổi sau.
Thay đổi về API
- Đã thêm 
UiObject2#waitForStablelàm lối tắt choUiObject2#accessibilityNodeInfo#waitForStable() 
Phiên bản 2.4.0-alpha04
Ngày 4 tháng 6 năm 2025
Phát hành androidx.test.uiautomator:uiautomator:2.4.0-alpha04. Phiên bản 2.4.0-alpha04 bao gồm các thay đổi sau.
Thay đổi về API
- Đổi tên 
onViewthànhonElementđể làm rõ rằng thành phần này hoạt động với Compose (I53a3b, b/419006806) 
Sửa lỗi
- Sửa lỗi 
waitForStableInActiveWindow(290457f1, b/420349130) 
Phiên bản 2.4.0-alpha03
Ngày 20 tháng 5 năm 2025
Phát hành androidx.test.uiautomator:uiautomator:2.4.0-alpha03. Phiên bản 2.4.0-alpha03 bao gồm các thay đổi sau.
Sửa lỗi
- Khắc phục lỗi 
waitForStableInActiveWindowgây ra NPE trong một số trường hợp (Ibf50f, b/417046391) 
Phiên bản 2.4.0-alpha02
Ngày 7 tháng 5 năm 2025
Phát hành androidx.test.uiautomator:uiautomator:2.4.0-alpha02. Phiên bản 2.4.0-alpha02 bao gồm các thay đổi sau.
Tính năng mới
- Hình dạng ban đầu của 
UiautomatorApi mới. Bạn có thể tạoUiAutomatorTestScopethông quauiAutomatorcủa nhà máy.uiAutomatornày cấp quyền truy cập vào các APIonViewmới. - Các quy tắc tìm lỗi mã nguồn ban đầu để cảnh báo về việc sử dụng 
AccessibilityNodeInfo#getTextvà đề xuất sử dụngtextAsString. 
Thay đổi về API
- Đã thêm 
Configurator#setDefaultDisplayIdđể đặt mã nhận dạng hiển thị nhằm hạn chế tất cả các lượt tìm kiếm (Icdf17). - Thay đổi 
Searchable(giao diện doUiDevicevàUiObject2dùng chung) thành công khai để thuận tiện (I67f18). 
Sửa lỗi
- Khắc phục lỗi xử lý các khoá meta trong 
UiDevice#pressKeyCodes. (I73f80). - Cập nhật 
UiDevice#getWindowRootsđể luôn trả về các gốc theo thứ tự Z (I87426). - Khắc phục vấn đề về việc một số cử chỉ không hoàn tất (I60dd3, If4edd).
 - Khắc phục lỗi vòng lặp vô hạn hiếm gặp khi gọi 
UiDevice#scrollUntil(I39989). 
Phiên bản 2.4.0-alpha01
Ngày 26 tháng 6 năm 2024
Phát hành androidx.test.uiautomator:uiautomator:2.4.0-alpha01. Phiên bản 2.4.0-alpha01 bao gồm các thay đổi sau.
Thay đổi về API
- Không dùng 
Configurator#getKeyInjectionDelayvàsetKeyInjectionDelaynữa vì tham số này hiện không được dùng do văn bản luôn được chèn trực tiếp thay vì bằng cách nhấn phím. (I3bcc5). 
Sửa lỗi
- Cập nhật độ trễ giữa các sự kiện chuyển động 
UiObject2để tính đến tốc độ làm mới linh động (tức là Hình ảnh mượt) (I43f12). - Giảm tình trạng không ổn định do nút hỗ trợ tiếp cận bị lỗi thời trên một số giao diện người dùng bằng cách định kỳ vô hiệu hoá bộ nhớ đệm hỗ trợ tiếp cận (I3be25).
 - Khắc phục lỗi 
StaleObjectExceptionxảy ra khi gọitoStringhoặchashCodetrênUiObject2cũ. (I38ea1). - Cải thiện hiệu suất 
UiWatcherbằng cách bỏ qua các lệnh gọiwaitForIdlekhông cần thiết. (I8c65e). - Đã sửa lỗi không chính xác trong javadoc, đặc biệt là để làm rõ thời điểm sử dụng từng tham số 
Configurator. (Ie10b1, I71631). 
Phiên bản 2.3.0
Phiên bản 2.3.0
Ngày 21 tháng 2 năm 2024
Phát hành androidx.test.uiautomator:uiautomator:2.3.0. Phiên bản 2.3.0 bao gồm các thay đổi sau.
Thay đổi quan trọng kể từ phiên bản 2.2.0
- Hỗ trợ nhiều màn hình: Thêm tính năng hỗ trợ tìm và thao tác trên các đối tượng trên nhiều màn hình, cũng như các phương thức 
UiDeviceđể quản lý màn hình phụ (Ie6544, I912cd). - Bộ chọn mới:
 - Điều kiện tuỳ chỉnh: Đã hiển thị giao diện 
Conditionđể hỗ trợ các điều kiện chờ tuỳ chỉnh và thêm các phương thứcUiDevice#wait,UiObject2#waitvàUiObject2#scrollUntiltương ứng (27c0ea, 099d6e). - Sửa lỗi và cải thiện độ tin cậy
- Sửa lỗi tính toán kích thước màn hình đôi khi không chính xác và có thể bỏ qua các phần của màn hình (Ifc016). Bạn có thể cần điều chỉnh toạ độ và độ lệch được dùng trong các kiểm thử.
 - Cập nhật hoạt động chèn 
MotionEventđể cải thiện độ chính xác (678ca3) và mô phỏng tốt hơn các cử chỉ của người dùng (454450). - Cải thiện độ tin cậy của thao tác cuộn (I7b059), xoay (c6cea0), nhấp và giữ (49572b), thu phóng (3c619a) và nhiều thao tác khác.
 
 
Phiên bản 2.3.0-rc01
Ngày 7 tháng 2 năm 2024
Phát hành androidx.test.uiautomator:uiautomator:2.3.0-rc01 mà không có thay đổi nào. Phiên bản 2.3.0-rc01 bao gồm các thay đổi sau.
Phiên bản 2.3.0-beta01
Ngày 13 tháng 12 năm 2023
Phát hành androidx.test.uiautomator:uiautomator:2.3.0-beta01. Phiên bản 2.3.0-beta01 bao gồm các thay đổi sau.
Thay đổi về API
- Đổi tên các phương thức lề dựa trên tỷ lệ phần trăm 
UiObject2thànhsetGestureMarginPercentagevàsetGestureMarginsPercentageđể đảm bảo tính nhất quán (I24435) 
Sửa lỗi
- Cải thiện lỗi được gửi khi không tìm thấy hoặc không truy cập được màn hình phụ (116b23)
 
Phiên bản 2.3.0-alpha05
Ngày 1 tháng 11 năm 2023
Phát hành androidx.test.uiautomator:uiautomator:2.3.0-alpha05. Phiên bản 2.3.0-alpha05 bao gồm các thay đổi sau.
Thay đổi về API
- Thêm 
UiObject2#getDrawingOrderđể hiển thị thông tin về thứ tự vẽ (chỉ mục z). (I5dfa4). - Thêm các phương thức 
UiDeviceđể lấy, đặt, cố định và huỷ cố định chế độ xoay của màn hình phụ. (I912cd). 
Sửa lỗi
- Đã thêm tính năng thử lại vào 
UiObject2#scrollUntilkhi không phát hiện được điểm kết thúc của thao tác cuộn (Ibac6f). - Khắc phục vấn đề trong đó 
UiDevicesẽ sử dụng một thực thểInstrumentationcũ nếu thực thể đó được tạo lại (I18cae). - Đã khắc phục lỗi NPE có thể xảy ra nếu không xác định được mã nhận dạng màn hình khi kết xuất các nút (Icafcb).
 - Thêm cảnh báo khi thực hiện thao tác nhấp/cuộn trên các đối tượng không thể nhấp/cuộn (I4a5d9).
 - Giảm tốc độ cuộn 
UiObject2mặc định để cải thiện độ tin cậy (I5e071). 
Phiên bản 2.3.0-alpha04
Ngày 26 tháng 7 năm 2023
Phát hành androidx.test.uiautomator:uiautomator:2.3.0-alpha04. Phiên bản 2.3.0-alpha04 bao gồm các thay đổi sau.
Thay đổi về API
- Thêm 
By.hasParentvàBy.hasAncestorđể hỗ trợ tìm đối tượng theo đối tượng mẹ (I93c36). - Đã thêm 
UiObject2#getHintđể truy xuất văn bản gợi ý của một đối tượng và các phương thứcBy.hintđể chọn đối tượng theo văn bản gợi ý của đối tượng (Idd345). - Đã thêm 
By.displayIdđể hỗ trợ việc chọn các đối tượng theo màn hình mà chúng xuất hiện (I1825b). - Thêm phương thức 
UiDevice#getDisplayHeight(int)vàUiDevice#getDisplayWidth(int)để tìm kích thước của một màn hình theo mã nhận dạng (Ie6544). - Thêm lại các phương thức 
wait(SearchCondition, long)vàwait(UiObject2Condition, long)để có khả năng tương thích ngược (Iebfda). - Đã thay đổi 
UiDevice#executeShellCommandthành công khai nhưng không khuyến khích thay vì ẩn (Ic48a1). 
Sửa lỗi
- Cập nhật hoạt động chèn 
MotionEventđể giảm tình trạng không ổn định bằng cách ưu tiên độ chính xác của cử chỉ hơn tốc độ (678ca3). - Thêm tính năng theo dõi vào các phương thức sử dụng nhiều tài nguyên để xác định các điểm tắc nghẽn về hiệu suất (d17de3).
 - Đã thêm cơ chế thử lại khi bắt đầu kết nối UiAutomation (048caf).
 - Khắc phục lỗi NPE có thể xảy ra do các nút rỗng trong 
UiDevice#dumpWindowHierarchy(b725eb). - Khắc phục các lỗi không mong muốn khi truy vấn hoặc thao tác trên màn hình riêng tư (985db6, 7053d4).
 
Phiên bản 2.3.0-alpha03
Ngày 19 tháng 4 năm 2023
Phát hành androidx.test.uiautomator:uiautomator:2.3.0-alpha03. Phiên bản 2.3.0-alpha03 bao gồm các thay đổi sau.
Thay đổi về API
- Hiển thị giao diện 
Conditionđể cho phép các điều kiện chờ tuỳ chỉnh thay vì chỉ dựa vào các điều kiện tích hợp sẵn trongUntil, đồng thời cập nhật các phương thứcUiDevice#waitvàUiObject2#waitđể chấp nhận giao diện này (27c0ea). - Thêm 
UiObject2#scrollUntilđể hỗ trợ thao tác cuộn cho đến khi đáp ứng một điều kiện và đạt được sự tương đồng vớiUiScrollable(099d6e). - Đã thêm 
UiDevice#setOrientationPortraitvàsetOrientationLandscapeđể tạo điều kiện thuận lợi cho việc xoay trên các loại thiết bị (e13cb7). - Đã thêm 
UiObject2#setGestureMarginPercentđể hỗ trợ việc đặt lề tương ứng với kích thước đối tượng. (Ib8c77) 
Sửa lỗi
- Khắc phục lỗi các phương thức 
UiScrollableđôi khi sử dụng toạ độ không hợp lệ trên SDK từ 18 đến 22 (b53ece). - Khắc phục lỗi 
UiObject2#setTextvàclearTextkhông sửa đổi được văn bản trên SDK 18 và 19 (77e41d). - Khắc phục vấn đề 
UiWatcherkhông được thực thi theo đúng thứ tự (c85f92). - Khắc phục vấn đề khi thiết bị có thể chưa xoay xong sau khi thay đổi hướng 
UiDevice(c6cea0). - Cải thiện độ tin cậy của thao tác nhấp và giữ, kéo và thu phóng (49572b, 3c619a).
 
Phiên bản 2.3.0-alpha02
Ngày 11 tháng 1 năm 2023
Phát hành androidx.test.uiautomator:uiautomator:2.3.0-alpha02. Phiên bản 2.3.0-alpha02 bao gồm các thay đổi sau.
Các thay đổi về API
- Cải tiến tính năng ghi nhật ký trong toàn bộ thư viện này để cung cấp thêm thông tin, cảnh báo về những vấn đề có thể xảy ra và cải thiện tính nhất quán.
 - Thêm 
UiDevice#pressKeyCodesđể hỗ trợ nhấn đồng thời nhiều phím, ví dụ như nhấn nút POWER và VOLUME_DOWN để chụp ảnh màn hình (22e525). - Thêm 
UiDevice#setCompressedLayoutHierarchyvà ngừng sử dụngUiDevice#setCompressedLayoutHeirarchyđể sửa lỗi chính tả trong tên phương thức (4e2f65). - Đánh dấu 
UiAutomatorInstrumentationTestRunnerlà không dùng nữa vì xử lý cácUiAutomatorTestCasekhông dùng nữa và không còn cần thiết nữa (be6c85). - Cập nhật độ trễ giữa 
UiObject2MotionEventđể tăng gấp đôi tốc độ làm mới màn hình nhằm mô phỏng tốt hơn các cử chỉ của người dùng (454450). - Hỗ trợ thêm tính năng so khớp văn bản và nội dung mô tả nhiều dòng (1625e6, b/255787130).
 
Sửa lỗi
- Khắc phục việc 
StaleObjectExceptionđôi khi được gửi khi truy vấn hoặc chờ các đối tượng (4cbcc0). - Sửa các giá trị trả về của 
UiScrollable#scrollToBeginning,scrollToEnd,flingToBeginningvàflingToEndkhông cho biết liệu đã đạt đến điểm bắt đầu/kết thúc hay chưa (d33e06). - Sửa các phương thức 
UiScrollable#scrollForwardvàscrollBackward, bỏ qua thời gian chờ đã định cấu hình (29e4f3). - Sửa hàm khởi tạo bản sao 
BySelectorkhông xử lý bộ chọn độ sâu (6c7b91). - Khắc phục việc xử lý các giá trị phần trăm không hợp lệ trong 
UiObject#pinchInvàpinchOut(01b973). - Sửa lỗi hiếm gặp, đó là tính năng hỗ trợ nhiều cửa sổ bị mất nếu đặt lại kết nối 
UiAutomationcơ bản (1bb956). 
Phiên bản 2.3.0-alpha01
Ngày 7 tháng 9 năm 2022
Phát hành androidx.test.uiautomator:uiautomator:2.3.0-alpha01. Phiên bản 2.3.0-alpha01 bao gồm các thay đổi sau.
Các thay đổi về API
- Chú thích giá trị rỗng của mọi phương thức công khai.
 - Chuyển chế độ chèn 
MotionEventthành không đồng bộ theo độ trễ ngắn để các cử chỉUiObject2mượt mà hơn. - Giảm thời gian thăm dò trong khi chờ từ 1000 mili giây xuống còn 100 mili giây.
 - Cập nhật 
UiDevice#wakeUpvàUiDevice#sleepđể dùngKEYCODE_WAKEUPvàKEYCODE_SLEEPtrong việc hỗ trợ các thiết bị ghi đè nút nguồn. - Thêm 
UiObject2#getDisplayIdcũng như hỗ trợ tìm và quản lý đối tượng trên nhiều màn hình. - Thêm phương thức 
UiObject#clickvàUiObject2#clickAndWaitđể nhấp vào một điểm bằng cách sử dụng các toạ độ của điểm đó. 
Sửa lỗi
- Sửa lỗi tính toán kích thước màn hình đôi khi không chính xác và có thể bỏ qua các phần của màn hình, đặc biệt là ở chế độ nhiều cửa sổ (Ifc016c).
 - Sửa tỷ lệ ảnh chụp màn hình trong 
UiDevice#takeScreenshot(Id80ad6). - Cải thiện độ tin cậy của 
Until.scrollFinishedvàUiObject2#scroll(I7b0595). - Sửa các cảnh báo 
IncorrectContextUseViolationở chế độ nghiêm ngặt (Iffa6a0).