Тестовый Uiautomator
| Последнее обновление | Стабильный релиз | Предварительная версия релиза | Бета-версия | Альфа-версия |
|---|---|---|---|---|
| 11 февраля 2026 г. | 2.3.0 | - | 2.4.0-beta01 | - |
Объявление зависимостей
Чтобы добавить зависимость от test, необходимо добавить репозиторий Google Maven в ваш проект. Для получения дополнительной информации ознакомьтесь с информацией в репозитории Google Maven .
Добавьте зависимости для необходимых артефактов в файл build.gradle вашего приложения или модуля:
классный
dependencies { // Use to implement UIAutomator tests androidTestImplementation "androidx.test.uiautomator:uiautomator:2.4.0-beta01" }
Котлин
dependencies { // Use to implement UIAutomator tests androidTestImplementation("androidx.test.uiautomator:uiautomator:2.4.0-beta01") }
Для получения дополнительной информации о зависимостях см. раздел «Добавление зависимостей сборки» .
Обратная связь
Ваши отзывы помогают улучшить Jetpack. Сообщите нам, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете проголосовать за существующую проблему, нажав кнопку со звездочкой.
Для получения более подробной информации см. документацию по системе отслеживания ошибок .
Тестирование оболочки Uiautomator, версия 1.0
Версия 1.0.0-alpha03
3 декабря 2025 г.
Выпущена версия androidx.test.uiautomator:uiautomator-shell:1.0.0-alpha03 . Версия 1.0.0-alpha03 содержит следующие коммиты .
Изменения в API
- Изменено время ожидания
startActivityна ожидание нового окна ( I35da6 , b/440021797 ) - Обновлен
screenSizePixelвRecorderCommands( If558c , b/429173157 )
Версия 1.0.0-alpha02
13 августа 2025 г.
Выпущена версия androidx.test.uiautomator:uiautomator-shell:1.0.0-alpha02 . Версия 1.0.0-alpha02 содержит следующие коммиты .
Версия 1.0.0-alpha01
18 июня 2025 г.
Выпущена версия androidx.test.uiautomator:uiautomator-shell:1.0.0-alpha01 . Версия 1.0.0-alpha01 содержит следующие коммиты .
Новые функции
- Первая альфа-версия библиотеки оболочки ui-automator для выполнения команд оболочки от имени пользователя оболочки. Эта библиотека позволяет читать стандартный вывод, стандартную ошибку и записывать в стандартный ввод процесса sh, запущенного оболочкой. Фактически, она является обратной совместимостью с
UiAutomation#executeShellCommandRweпредставленным в API 34.
Версия 2.4
Версия 2.4.0-beta01
11 февраля 2026 г.
Выпущены версии androidx.test.uiautomator:uiautomator:2.4.0-beta01 и androidx.test.uiautomator:uiautomator-shell:2.4.0-beta01 . Версия 2.4.0-beta01 содержит следующие коммиты .
Изменения в API
- Сделайте команды без состояния синглтонами. ( I3394c , b/429173157 )
- Обновите API
RecorderCommands. ( Ie09e8 , b/429173157 ) - Упростите API
RecorderCommands, чтобы он имел четко определенный жизненный цикл. ( I30f89 , b/444305673 )
Версия 2.4.0-alpha07
3 декабря 2025 г.
Выпущена версия androidx.test.uiautomator:uiautomator:2.4.0-alpha07 . Версия 2.4.0-alpha07 содержит следующие коммиты .
Изменения в API
- Изменено время ожидания
startActivityна ожидание нового окна. Это делает запуск в целом синхронным и позволяет будущим версиям Macrobenchmark настраивать обнаружение завершения запуска. ( I35da6 , Id6e6f , b/440021797 ) - Удалён API без явного указания имени пакета в
UiAutomatorTestScope. ( I8c285 , b/413417205 )
Версия 2.4.0-alpha06
13 августа 2025 г.
Выпущена версия androidx.test.uiautomator:uiautomator:2.4.0-alpha06 . Версия 2.4.0-alpha06 содержит следующие коммиты .
Новые функции
- Добавлены API для работы с окнами, что улучшает тестирование в многооконном режиме, например,
UiDevice#findWindowтеперь можно использовать для поиска конкретного окнаUiWindowв соответствии сByWindowSelectorсозданным с помощью фабричных методовBy.Window. ( I359c4 , I40528 , I8c963 )
Версия 2.4.0-alpha05
18 июня 2025 г.
Выпущена версия androidx.test.uiautomator:uiautomator:2.4.0-alpha05 . Версия 2.4.0-alpha05 содержит следующие коммиты .
Изменения в API
- Добавлена функция
UiObject2#waitForStableв качестве сокращения дляUiObject2#accessibilityNodeInfo#waitForStable()
Версия 2.4.0-alpha04
4 июня 2025 г.
Выпущена версия androidx.test.uiautomator:uiautomator:2.4.0-alpha04 . Версия 2.4.0-alpha04 содержит следующие коммиты .
Изменения в API
- Переименовали
onViewвonElement, чтобы уточнить, работает ли он с Compose ( I53a3b , b/419006806 ).
Исправлены ошибки
- Исправление
waitForStableInActiveWindow( 290457f1 , b/420349130 )
Версия 2.4.0-alpha03
20 мая 2025 г.
Выпущена версия androidx.test.uiautomator:uiautomator:2.4.0-alpha03 . Версия 2.4.0-alpha03 содержит следующие коммиты .
Исправлены ошибки
- Исправлена ошибка, из-за которой
waitForStableInActiveWindowв некоторых случаях вызывал NullPointerException ( Ibf50f , b/417046391 ).
Версия 2.4.0-alpha02
7 мая 2025 г.
Выпущена версия androidx.test.uiautomator:uiautomator:2.4.0-alpha02 . Версия 2.4.0-alpha02 содержит следующие коммиты .
Новые функции
- Начальная структура нового API
Uiautomator.UiAutomatorTestScopeможно создать с помощью фабрикиuiAutomator, которая предоставляет доступ к новым APIonView. - Первоначальные правила Lint для предупреждения об использовании
AccessibilityNodeInfo#getTextи предложения использованияtextAsString.
Изменения в API
- Добавлена
Configurator#setDefaultDisplayIdдля установки идентификатора дисплея, ограничивающего все поиски только ( Icdf17 ). - Для удобства интерфейс
Searchable(общий дляUiDeviceиUiObject2) был изменен на public ( I67f18 ).
Исправлены ошибки
- Исправлена обработка мета-клавиш в
UiDevice#pressKeyCodes( I73f80 ). - Обновлена
UiDevice#getWindowRoots, теперь она всегда возвращает корни в порядке Z ( I87426 ). - Исправлена ошибка, из-за которой некоторые жесты выполнялись не полностью ( I60dd3 , If4edd ).
- Исправлена редкая ошибка бесконечного цикла при вызове
UiDevice#scrollUntil( I39989 ).
Версия 2.4.0-alpha01
26 июня 2024 г.
Выпущена версия androidx.test.uiautomator:uiautomator:2.4.0-alpha01 . Версия 2.4.0-alpha01 содержит следующие коммиты .
Изменения в API
- Устаревшие
Configurator#getKeyInjectionDelayиsetKeyInjectionDelayв качестве параметров больше не используются, поскольку текст всегда вставляется напрямую, а не при нажатии клавиш. ( I3bcc5 ).
Исправлены ошибки
- Изменена задержка между событиями движения
UiObject2с учетом динамической частоты обновления (т.е. Smooth Display) ( I43f12 ). - Уменьшена нестабильность, вызванная устареванием узлов специальных возможностей в некоторых пользовательских интерфейсах, за счет периодической очистки кэша специальных возможностей ( I3be25 ).
- Исправлены ошибки
StaleObjectException, возникающие при вызовеtoStringилиhashCodeдля устаревшего объектаUiObject2( I38ea1 ). - Улучшена производительность
UiWatcherза счет пропуска ненужных вызововwaitForIdle. ( I8c65e ). - Исправлены неточности в документации Javadoc, в частности, для уточнения случаев использования каждого параметра
Configurator( IE10b1 , I71631 ).
Версия 2.3.0
Версия 2.3.0
21 февраля 2024 г.
Выпущена версия 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 ). - Исправление ошибок и повышение надежности.
- Исправлена ошибка, из-за которой расчеты размера экрана иногда были некорректными и могли игнорировать части экрана ( Ifc016 ). Возможно, потребуется скорректировать координаты и смещения, используемые в тестах.
- Обновлена реализация внедрения
MotionEventдля повышения точности ( 678ca3 ) и лучшего воспроизведения жестов пользователя ( 454450 ). - Улучшена надежность прокрутки ( I7b059 ), вращения ( c6cea0 ), длительных нажатий ( 49572b ), масштабирования ( 3c619a ) и многого другого.
Версия 2.3.0-rc01
7 февраля 2024 г.
Выпущена версия androidx.test.uiautomator:uiautomator:2.3.0-rc01 без изменений. Версия 2.3.0-rc01 содержит следующие коммиты.
Версия 2.3.0-beta01
13 декабря 2023 г.
Выпущена версия androidx.test.uiautomator:uiautomator:2.3.0-beta01 . Версия 2.3.0-beta01 содержит следующие коммиты.
Изменения в API
- Для обеспечения единообразия методы
UiObject2, определяющие процентное отклонение, были переименованы вsetGestureMarginPercentageиsetGestureMarginsPercentage( I24435 ).
Исправлены ошибки
- Улучшена обработка ошибки, возникающей при отсутствии или недоступности дополнительного дисплея ( 116b23 ).
Версия 2.3.0-alpha05
1 ноября 2023 г.
Выпущена версия androidx.test.uiautomator:uiautomator:2.3.0-alpha05 . Версия 2.3.0-alpha05 содержит следующие коммиты.
Изменения в API
- Добавлена
UiObject2#getDrawingOrderдля отображения информации о порядке отрисовки (z-индексе). ( I5dfa4 ). - Добавлены методы
UiDeviceдля получения, установки, фиксации и разморозки вращения дополнительных дисплеев. ( I912cd ).
Исправлены ошибки
- Добавлена повторная попытка в
UiObject2#scrollUntilесли не удается определить конец прокрутки ( Ibac6f ). - Исправлена ошибка, из-за которой
UiDeviceиспользовал устаревший экземплярInstrumentationпри его повторном создании ( I18cae ). - Исправлена возможная ошибка NullPointerException, возникающая при невозможности определить идентификатор дисплея при выгрузке узлов ( Icafcb ).
- Добавлено предупреждение при выполнении кликов/прокруток по некликабельным/непрокручиваемым объектам ( I4a5d9 ).
- Снижена скорость прокрутки
UiObject2по умолчанию для повышения надежности ( I5e071 ).
Версия 2.3.0-alpha04
26 июля 2023 г.
Выпущена версия 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на public, но discomeded вместо hidden ( Ic48a1 ).
Исправлены ошибки
- Обновлена реализация внедрения
MotionEventдля уменьшения нестабильности за счет приоритета точности жестов над скоростью ( 678ca3 ). - Добавлена трассировка для ресурсоемких методов с целью выявления узких мест в производительности ( d17de3 ).
- Добавлен механизм повторной попытки при установлении соединения UiAutomation ( 048caf ).
- Исправлена возможная ошибка NullPointerException, возникающая из-за нулевых узлов в
UiDevice#dumpWindowHierarchy( b725eb ). - Исправлены непредвиденные ошибки, возникающие при запросах или работе на частных экранах ( 985db6 , 7053d4 ).
Версия 2.3.0-alpha03
19 апреля 2023 г.
Выпущена версия 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
11 января 2023 г.
Выпущена версия 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 ). - Задержка между событиями
UiObject2MotionEventувеличена вдвое по сравнению с частотой обновления дисплея для лучшей имитации жестов пользователя ( 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
7 сентября 2022 г.
Выпущена версия androidx.test.uiautomator:uiautomator:2.3.0-alpha01 . Версия 2.3.0-alpha01 содержит следующие коммиты.
Изменения в API
- Помечено, что все общедоступные методы являются нулевыми.
- Для более плавных жестов
UiObject2внедрена асинхронная реализацияMotionEventс небольшой задержкой. - Уменьшен интервал опроса во время ожидания с 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 ).