測試 Uiautomator
最近更新時間 | 穩定版 | 候選版 | Beta 版 | Alpha 版 |
---|---|---|---|---|
2024 年 2 月 21 日 | 2.3.0 | - | - | - |
宣告依附元件
如果要為測試新增依附元件,您必須將 Google Maven 存放區新增至專案。詳情請參閱「Google 的 Maven 存放區」一節。
在應用程式或模組的 build.gradle
檔案中,新增所需構件的依附元件:
Groovy
dependencies { // Use to implement UIAutomator tests androidTestImplementation "androidx.test.uiautomator:uiautomator:2.3.0" }
Kotlin
dependencies { // Use to implement UIAutomator tests androidTestImplementation("androidx.test.uiautomator:uiautomator:2.3.0") }
如要進一步瞭解依附元件,請參閱「新增建構依附元件」一文。
意見回饋
您的意見可協助我們改善 Jetpack。如果您發現新問題,或是有改進這個程式庫的建議,請告訴我們。回報新問題前,請先查看這個程式庫的現有問題。只要按一下星號按鈕,即可投票給現有的問題。
詳情請參閱 Issue Tracker 說明文件。
2.3.0 版本
2.3.0 版
2024 年 2 月 21 日
發布 androidx.test.uiautomator:uiautomator:2.3.0
。2.3.0 版包含此連結所列的修訂項目。
自 2.2.0 版本以來的重要變更
- 支援多螢幕:新增可跨螢幕尋找和操作物件的支援,以及管理次要螢幕的
UiDevice
方法 (Ie6544、I912cd)。 - 新選取器:
- 自訂條件:公開
Condition
介面以支援自訂等待條件,並新增了對應的UiDevice#wait
、UiObject2#wait
和UiObject2#scrollUntil
方法 (27c0ea、099d6e)。 - 修正錯誤並提升穩定性
2.3.0-rc01 版
2024 年 2 月 7 日
androidx.test.uiautomator:uiautomator:2.3.0-rc01
發布,內容無變更。2.3.0-rc01 版包含此連結所列的修訂項目。
2.3.0-beta01 版
2023 年 12 月 13 日
發布 androidx.test.uiautomator:uiautomator:2.3.0-beta01
。2.3.0-beta01 版包含此連結所列的修訂項目。
API 變更
- 將
UiObject2
百分比邊界方法重新命名為setGestureMarginPercentage
和setGestureMarginsPercentage
,以便保持一致 (I24435)
修正錯誤
- 已改善找不到或無法存取次要螢幕時擲回的錯誤 (116b23)
2.3.0-alpha05 版
2023 年 11 月 1 日
發布 androidx.test.uiautomator:uiautomator:2.3.0-alpha05
。查看 2.3.0-alpha05 版的修訂項。
API 變更
- 新增了
UiObject2#getDrawingOrder
,以便顯示繪圖順序 (Z-index) 資訊。(I5dfa4)。 - 新增了
UiDevice
方法,用於取得、設定、凍結及取消凍結次要螢幕的旋轉動作。(I912cd)。
修正錯誤
- 新增了重試於
UiObject2#scrollUntil
時,無法偵測到捲動結束的情況 (Ibac6f)。 - 修正問題:
UiDevice
會在重新建立時使用過時的Instrumentation
例項 (I18cae)。 - 修正了在傾印節點時無法判斷顯示 ID 時可能出現的 NPE (Icafcb)。
- 在不可點擊/捲動的物件上執行點擊/捲動時,已新增警告 (I4a5d9)。
- 降低預設的
UiObject2
捲動速度,以改善穩定性 (I5e071)。
2.3.0-alpha04 版
2023 年 7 月 26 日
發布 androidx.test.uiautomator:uiautomator:2.3.0-alpha04
。2.3.0-alpha04 版包含此連結所列的修訂項目。
API 變更
- 新增了
By.hasParent
和By.hasAncestor
,支援根據父項尋找物件 (I93c36)。 - 新增了
UiObject2#getHint
以擷取物件提示文字,並新增By.hint
方法,以便根據物件提示文字選取物件 (Idd345)。 - 新增了
By.displayId
,支援根據物件所在螢幕選取物件 (I1825b)。 - 新增
UiDevice#getDisplayHeight(int)
和UiDevice#getDisplayWidth(int)
方法,可透過 ID 找出螢幕尺寸 (Ie6544)。 - 重新新增
wait(SearchCondition, long)
和wait(UiObject2Condition, long)
方法以確保回溯相容性 (Iebfda)。 - 已將
UiDevice#executeShellCommand
變更為公開,但建議不要隱藏 (Ic48a1)。
修正錯誤
- 更新
MotionEvent
插入功能,透過將手勢準確度優先於速度而非速度 (678ca3),藉此減少打亂情形。 - 針對資源密集的方法新增追蹤記錄,以識別效能瓶頸 (d17de3)。
- 新增啟動 UiAutomation 連線時的重試機制 (048caf)。
- 修正了
UiDevice#dumpWindowHierarchy
中空值節點可能存在的 NPE (b725eb)。 - 修正在私人螢幕上查詢或作業時發生的非預期的錯誤 (985db6、7053d4)。
2.3.0-alpha03 版
2023 年 4 月 19 日
發布 androidx.test.uiautomator:uiautomator:2.3.0-alpha03
。查看 2.3.0-alpha03 版的修訂項。
API 變更
- 公開了
Condition
介面,以允許自訂等待條件,而非只依賴Until
中的內建功能,並更新了UiDevice#wait
和UiObject2#wait
方法,以便接受此介面 (27c0ea)。 - 新增了
UiObject2#scrollUntil
,支援捲動功能直到符合條件為止,並能與UiScrollable
達到相同效果 (099d6e)。 - 新增了
UiDevice#setOrientationPortrait
和setOrientationLandscape
,以利在各種裝置類型上旋轉 (e13cb7)。 - 新增了
UiObject2#setGestureMarginPercent
,以支援設定相對於物件大小的邊界。(Ib8c77)。
修正錯誤
- 修正
UiScrollable
方法有時會在 SDK 18 至 22 中使用無效座標 (b53ece)。 - 已修正
UiObject2#setText
和clearText
無法修改 SDK 18 和 19 中的文字 (77e41d)。 - 修正了
UiWatcher
無法以正確順序執行的問題 (c85f92)。 - 修正問題:
UiDevice
螢幕方向變更 (c6cea0) 後,裝置旋轉作業可能尚未完成。 - 改善長按、拖曳和圖釘 (49572b、3c619a)。
2.3.0-alpha02 版
2023 年 1 月 11 日
發布 androidx.test.uiautomator:uiautomator:2.3.0-alpha02
。2.3.0-alpha02 版包含此連結所列的修訂項目。
API 變更
- 重新調整整個程式庫的記錄功能,提供更多資訊、針對潛在問題發出警告,並改善一致性。
- 新增
UiDevice#pressKeyCodes
,支援同時按下多個按鍵,例如按下 POWER 鍵和 VOLUME_DOWN 鍵來擷取螢幕截圖 (22e525)。 - 新增了
UiDevice#setCompressedLayoutHierarchy
和淘汰的UiDevice#setCompressedLayoutHeirarchy
,以修正方法名稱中的錯字 (4e2f65)。 - 由於
UiAutomatorInstrumentationTestRunner
會處理已淘汰的UiAutomatorTestCase
,因不再需要而標示為已淘汰 (be6c85)。 - 將
UiObject2
MotionEvent
之間的延遲時間更新為螢幕刷新率的兩倍,更加貼切模擬使用者手勢 (454450)。 - 新增對多行文字和說明比對的功能支援 (1625e6、b/255787130)。
修正錯誤
- 修正在查詢或等待物件時,有時會擲回
StaleObjectException
的問題 (4cbcc0)。 - 修正
UiScrollable#scrollToBeginning
、scrollToEnd
、flingToBeginning
和flingToEnd
的傳回值不會指出是否已到達開端/尾端的問題 (d33e06)。 - 修正
UiScrollable#scrollForward
和scrollBackward
方法忽略所設逾時的問題 (29e4f3)。 - 修正
BySelector
複製建構函式無法處理深度選取器的問題 (6c7b91)。 - 修正
UiObject#pinchIn
和pinchOut
中無效百分比值的處理方式 (01b973)。 - 修正在極罕見情況下,重設基礎
UiAutomation
連線後無法支援多視窗模式 (1bb956)。
2.3.0-alpha01 版
2022 年 9 月 7 日
發布 androidx.test.uiautomator:uiautomator:2.3.0-alpha01
。2.3.0-alpha01 版本包含這些修訂項目。
API 變更
- 為所有公開方法的空值加註。
- 加上短暫延遲將
MotionEvent
插入變成非同步狀態,讓UiObject2
手勢更順暢。 - 減少輪詢間隔,同時將等待時間從 1000 毫秒縮短成 100 毫秒。
- 更新
UiDevice#wakeUp
和UiDevice#sleep
,現在使用KEYCODE_WAKEUP
和KEYCODE_SLEEP
支援會覆寫電源鍵功能的裝置。 - 新增
UiObject2#getDisplayId
並支援尋找及管理跨螢幕的物件。 - 新增
UiObject#click
和UiObject2#clickAndWait
方法,現在可以使用座標點選一個點。
修正錯誤
- 修正問題:系統以往偶有螢幕大小計算錯誤的情況,也可能會忽略螢幕的某些部分 (尤其是在多視窗模式下),這些問題現在已經修正 (Ifc016c)。
- 修正
UiDevice#takeScreenshot
中的螢幕截圖資源調度 (Id80ad6)。 - 提升
Until.scrollFinished
和UiObject2#scroll
的穩定性 (I7b0595)。 - 修正嚴格模式
IncorrectContextUseViolation
警告 (Iffa6a0)。