Test Uiautomator
最新の更新 | 安定版リリース | リリース候補版 | ベータ版リリース | アルファ版リリース |
---|---|---|---|---|
2025 年 8 月 13 日 | 2.3.0 | - | - | 2.4.0-alpha06 |
依存関係の宣言
test への依存関係を追加するには、Google の Maven リポジトリをプロジェクトに追加する必要があります。詳しくは、Google の Maven リポジトリをご覧ください。
アプリまたはモジュールの build.gradle
ファイルに、必要なアーティファクトの依存関係を追加します。
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") }
依存関係について詳しくは、ビルド依存関係の追加をご覧ください。
フィードバック
お寄せいただいたフィードバックは Jetpack 改善の参考にさせていただきます。新しい問題が見つかった場合や、このライブラリを改善するアイデアをお持ちの場合は、お知らせください。新しい問題を報告していただく前に、このライブラリの既存の問題をご確認ください。スターボタンをクリックすると、既存の問題に投票できます。
詳細については、Issue Tracker のドキュメントをご覧ください。
Test Uiautomator Shell バージョン 1.0
バージョン 1.0.0-alpha02
2025 年 8 月 13 日
androidx.test.uiautomator:uiautomator-shell:1.0.0-alpha02
がリリースされました。バージョン 1.0.0-alpha02 にはこれらの commit が含まれています。
バージョン 1.0.0-alpha01
2025 年 6 月 18 日
androidx.test.uiautomator:uiautomator-shell:1.0.0-alpha01
がリリースされました。バージョン 1.0.0-alpha01 にはこれらの commit が含まれています。
新機能
- シェルユーザーとしてシェルコマンドを実行する ui-automator シェル ライブラリの最初のアルファ版。このライブラリを使用すると、シェルによって起動された sh プロセスの stdout、stderr の読み取りと stdin への書き込みを行うことができます。事実上、api 34 で導入された
UiAutomation#executeShellCommandRwe
をバックポートします。
バージョン 2.4
バージョン 2.4.0-alpha06
2025 年 8 月 13 日
androidx.test.uiautomator:uiautomator:2.4.0-alpha06
がリリースされました。バージョン 2.4.0-alpha06 には、これらの commit が含まれています。
新機能
- マルチウィンドウ テストを改善するためのウィンドウベースの API を追加しました。つまり、
UiDevice#findWindow
を使用して、By.Window
ファクトリ メソッドで構築されたByWindowSelector
に従って特定のUiWindow
を見つけることができるようになりました。(I359c4、I40528、I8c963)
バージョン 2.4.0-alpha05
2025 年 6 月 18 日
androidx.test.uiautomator:uiautomator:2.4.0-alpha05
がリリースされました。バージョン 2.4.0-alpha05 にはこれらの commit が含まれています。
API の変更
UiObject2#waitForStable
をUiObject2#accessibilityNodeInfo#waitForStable()
のショートカットとして追加しました
バージョン 2.4.0-alpha04
2025 年 6 月 4 日
androidx.test.uiautomator:uiautomator:2.4.0-alpha04
がリリースされました。バージョン 2.4.0-alpha04 には、これらの commit が含まれています。
API の変更
onView
の名前をonElement
に変更し、Compose で動作することを明確にしました(I53a3b、b/419006806)
バグの修正
waitForStableInActiveWindow
を修正しました(290457f1、b/420349130)
バージョン 2.4.0-alpha03
2025 年 5 月 20 日
androidx.test.uiautomator:uiautomator:2.4.0-alpha03
がリリースされました。バージョン 2.4.0-alpha03 にはこれらの commit が含まれています。
バグの修正
waitForStableInActiveWindow
が NPE をスローするケースを修正しました(Ibf50f、b/417046391)
バージョン 2.4.0-alpha02
2025 年 5 月 7 日
androidx.test.uiautomator:uiautomator:2.4.0-alpha02
がリリースされました。バージョン 2.4.0-alpha02 にはこれらの commit が含まれています。
新機能
- 新しい
Uiautomator
Api の初期形状。UiAutomatorTestScope
は、新しいonView
API へのアクセスを提供するファクトリuiAutomator
を介して作成できます。 AccessibilityNodeInfo#getText
の使用に関する警告とtextAsString
の使用の提案を行う初期 Lint ルール。
API の変更
- すべての検索を制限するディスプレイ ID を設定する
Configurator#setDefaultDisplayId
を追加しました(Icdf17)。 - 便宜上、
Searchable
(UiDevice
とUiObject2
で共有されるインターフェース)を public に変更しました(I67f18)。
バグの修正
UiDevice#pressKeyCodes
でのメタキーの処理を修正しました。(I73f80)。UiDevice#getWindowRoots
を更新し、常に Z 順でルートを返すようにしました(I87426)。- 特定のジェスチャーが完了しない問題を修正しました(I60dd3、If4edd)。
UiDevice#scrollUntil
を呼び出す際にまれに発生する無限ループを修正しました(I39989)。
バージョン 2.4.0-alpha01
2024 年 6 月 26 日
androidx.test.uiautomator:uiautomator:2.4.0-alpha01
がリリースされました。バージョン 2.4.0-alpha01 には、これらの commit が含まれています。
API の変更
- テキストがキー押下ではなく常に直接挿入されるようになったため、パラメータが使用されなくなった
Configurator#getKeyInjectionDelay
とsetKeyInjectionDelay
を非推奨にしました。(I3bcc5)。
バグの修正
- 動的リフレッシュ レート(スムーズ ディスプレイ)を考慮して、
UiObject2
モーション イベント間の遅延を更新しました(I43f12)。 - 特定の UI でのユーザー補助ノードの古さによる不安定さを、ユーザー補助キャッシュを定期的に無効にすることで軽減しました(I3be25)。
- 古い
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 に含まれる commit については、こちらをご覧ください。
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 に含まれる commit については、こちらをご覧ください。
バージョン 2.3.0-beta01
2023 年 12 月 13 日
androidx.test.uiautomator:uiautomator:2.3.0-beta01
がリリースされました。バージョン 2.3.0-beta01 に含まれる commit については、こちらをご覧ください。
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 に含まれる commit については、こちらをご覧ください。
API の変更
- 描画順序(z-index)の情報を公開する
UiObject2#getDrawingOrder
を追加しました。(I5dfa4)。 - セカンダリ ディスプレイの回転を取得、設定、フリーズ、フリーズ解除する
UiDevice
メソッドを追加しました。(I912cd)。
バグの修正
- スクロールの終了を検出できない場合に
UiObject2#scrollUntil
に再試行を追加しました(Ibac6f)。 UiDevice
が再作成された場合に古いInstrumentation
インスタンスを使用する問題を修正しました(I18cae)。- ノードのダンプ時にディスプレイ ID を特定できない場合(Icafcb)に発生する可能性のある NPE を修正しました。
- クリックまたはスクロールできないオブジェクトに対してクリックまたはスクロールを実行したときに警告を追加しました(I4a5d9)。
- 信頼性を高めるため、デフォルトの
UiObject2
スクロール速度を下げました(I5e071)。
バージョン 2.3.0-alpha04
2023 年 7 月 26 日
androidx.test.uiautomator:uiautomator:2.3.0-alpha04
がリリースされました。バージョン 2.3.0-alpha04 に含まれる commit については、こちらをご覧ください。
API の変更
- 親に基づいてオブジェクトを検索できるように
By.hasParent
とBy.hasAncestor
を追加しました(I93c36)。 - オブジェクトのヒントテキストを取得する
UiObject2#getHint
と、ヒントテキストに従ってオブジェクトを選択するBy.hint
メソッドを追加しました(Idd345)。 - 表示されているディスプレイに応じてオブジェクトを選択できるように
By.displayId
を追加しました(I1825b)。 - ID(Ie6544)でディスプレイのサイズを取得する
UiDevice#getDisplayHeight(int)
メソッドとUiDevice#getDisplayWidth(int)
メソッドを追加しました。 - 下位互換性を確保するため、
wait(SearchCondition, long)
メソッドとwait(UiObject2Condition, long)
メソッドを再度追加しました(Iebfda)。 UiDevice#executeShellCommand
を非表示ではなく、公開だが非推奨に変更しました(Ic48a1)。
バグの修正
- 速度よりもジェスチャーの精度を優先することで、不安定さを軽減するように
MotionEvent
インジェクションを更新しました(678ca3)。 - パフォーマンスのボトルネックを特定するため、リソースを大量に消費するメソッドにトレースを追加しました(d17de3)。
- UiAutomation 接続の開始時に再試行メカニズムを追加しました(048caf)。
UiDevice#dumpWindowHierarchy
の null ノードから発生する可能性のある NPE を修正しました(b725eb)。- プライベート ディスプレイのクエリまたは操作で予期しないエラーが発生する問題を修正しました(985db6、7053d4)。
バージョン 2.3.0-alpha03
2023 年 4 月 19 日
androidx.test.uiautomator:uiautomator:2.3.0-alpha03
がリリースされました。バージョン 2.3.0-alpha03 に含まれる commit については、こちらをご覧ください。
API の変更
Until
の組み込みのみに依存するのではなく、カスタムの待機条件を許可するためにCondition
インターフェースを公開し、このインターフェースを受け入れるようにUiDevice#wait
メソッドとUiObject2#wait
メソッドを更新しました(27c0ea)。- 条件が満たされるまでスクロールし、
UiScrollable
とのパリティを実現するために、UiObject2#scrollUntil
を追加しました(099d6e)。 - デバイスタイプ間の回転を容易にするため、
UiDevice#setOrientationPortrait
とsetOrientationLandscape
を追加しました(e13cb7)。 - オブジェクト サイズを基準としたマージンの設定をサポートするために
UiObject2#setGestureMarginPercent
を追加しました。(Ib8c77)
バグの修正
UiScrollable
メソッドが SDK 18 ~ 22 で無効な座標をまれに使用する問題を修正しました(b53ece)。- SDK 18 と 19 でテキストの変更に失敗する
UiObject2#setText
とclearText
を修正しました(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 に含まれる commit については、こちらをご覧ください。
API の変更
- より多くの情報を提供し、発生する可能性のある問題を警告し、整合性を改善するよう、ライブラリ全体でロギングを再構築しました。
- 複数のキーを同時に押す操作(POWER と VOLUME_DOWN を押してスクリーンショットを撮るなど)をサポートするため
UiDevice#pressKeyCodes
を追加しました。(22e525) - メソッド名のスペルミスを修正するため、
UiDevice#setCompressedLayoutHierarchy
を追加してUiDevice#setCompressedLayoutHeirarchy
を非推奨にしました。(4e2f65) - 非推奨になった
UiAutomatorTestCase
を処理していて不要であるため、UiAutomatorInstrumentationTestRunner
を非推奨としてマークしました。(be6c85) - ディスプレイのリフレッシュ レートを 2 倍にしてユーザー操作を適切にエミュレートするよう
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 に含まれる commit については、こちらをご覧ください。
API の変更
- すべてのパブリック メソッドの null 可能性にアノテーションを付けました。
UiObject2
ジェスチャーを滑らかにするためにMotionEvent
の挿入を非同期に切り替え、短い遅延を加えました。- 待機中のポーリング間隔を 1,000 ミリ秒から 100 ミリ秒に短縮しました。
- 電源ボタンをオーバーライドするデバイスを
KEYCODE_WAKEUP
とKEYCODE_SLEEP
を使用してサポートするようにUiDevice#wakeUp
とUiDevice#sleep
を更新しました。 UiObject2#getDisplayId
を追加し、複数のディスプレイにわたるオブジェクトの検索と管理をサポートしました。- 座標を使用してポイントをクリックできるように、
UiObject#click
メソッドとUiObject2#clickAndWait
メソッドを追加しました。
バグの修正
- 特にマルチウィンドウ モードで、ディスプレイ サイズの計算が不正確になることがあり、画面の一部が無視される問題を修正しました。(Ifc016c)
UiDevice#takeScreenshot
でのスクリーンショットのスケーリングを修正しました。(Id80ad6)Until.scrollFinished
とUiObject2#scroll
の信頼性を改善しました。(I7b0595)- 厳格モードの
IncorrectContextUseViolation
警告を修正しました。(Iffa6a0)