測試 Uiautomator
最近更新時間 | 穩定版 | 候選版 | Beta 版 | Alpha 版 |
---|---|---|---|---|
2024 年 6 月 26 日 | 2.3.0 | - | - | 2.4.0-alpha01 版 |
宣告依附元件
如果要為測試新增依附元件,您必須將 Google Maven 存放區新增至專案。詳情請參閱「Google 的 Maven 存放區」一節。
在應用程式或模組的 build.gradle
檔案中,新增所需構件的依附元件:
Groovy
dependencies { // Use to implement UIAutomator tests androidTestImplementation "androidx.test.uiautomator:uiautomator:2.4.0-alpha01" }
Kotlin
dependencies { // Use to implement UIAutomator tests androidTestImplementation("androidx.test.uiautomator:uiautomator:2.4.0-alpha01") }
如要進一步瞭解依附元件,請參閱「新增建構依附元件」一文。
意見回饋
您的意見可協助我們改善 Jetpack。如果您發現新問題,或是有改進這個程式庫的建議,請告訴我們。回報新問題前,請先查看這個程式庫的現有問題。只要按一下星號按鈕,即可投票給現有的問題。
詳情請參閱 Issue Tracker 說明文件。
2.4 版
2.4.0-alpha01 版
2024 年 6 月 26 日
發布 androidx.test.uiautomator:uiautomator:2.4.0-alpha01
。2.4.0-alpha01 版包含這些修訂版本。
API 變更
- 淘汰了
Configurator#getKeyInjectionDelay
和setKeyInjectionDelay
,因為系統一律會直接插入文字,而不是按下按鍵動作。(I3bcc5)。
修正錯誤
- 更新
UiObject2
動作事件之間的延遲時間,以配合動態重新整理頻率 (例如流暢顯示) (I43f12)。 - 定期撤銷無障礙功能快取 (I3be25),減少特定 UI 上無障礙節點過時的問題。
- 修正了在過時
UiObject2
上呼叫toString
或hashCode
時發生的StaleObjectException
問題。(I38ea1)。 - 透過略過不必要的
waitForIdle
呼叫,改善UiWatcher
效能。(I8c65e)。 - 修正 javadoc 不準確的問題,尤其是如何使用每個
Configurator
參數的說明。(Ie10b1、I71631)。
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
在重新建立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)。