Тестовый Uiautomator
| Последнее обновление | Стабильный релиз | Кандидат на релиз | Бета-версия | Альфа-релиз | 
|---|---|---|---|---|
| 13 августа 2025 г. | 2.3.0 | - | - | 2.4.0-альфа06 | 
Объявление зависимостей
Чтобы добавить зависимость от test, необходимо добавить репозиторий Google Maven в свой проект. Подробнее см. в репозитории Google Maven .
 Добавьте зависимости для необходимых артефактов в файл build.gradle вашего приложения или модуля:
классный
dependencies { // Use to implement UIAutomator tests androidTestImplementation "androidx.test.uiautomator:uiautomator:2.4.0-alpha06" }
Котлин
dependencies { // Use to implement UIAutomator tests androidTestImplementation("androidx.test.uiautomator:uiautomator:2.4.0-alpha06") }
Дополнительные сведения о зависимостях см. в разделе Добавление зависимостей сборки .
Обратная связь
Ваши отзывы помогают улучшить Jetpack. Сообщите нам, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с уже существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете проголосовать за существующую проблему, нажав на кнопку со звёздочкой.
Более подробную информацию см. в документации по системе отслеживания проблем .
Тестовая оболочка Uiautomator версии 1.0
Версия 1.0.0-альфа02
13 августа 2025 г.
 Выпущен androidx.test.uiautomator:uiautomator-shell:1.0.0-alpha02 . Версия 1.0.0-alpha02 содержит следующие коммиты .
Версия 1.0.0-альфа01
18 июня 2025 г.
 Выпущен androidx.test.uiautomator:uiautomator-shell:1.0.0-alpha01 . Версия 1.0.0-alpha01 содержит следующие коммиты .
Новые функции
-  Первая альфа-версия библиотеки оболочки ui-automator для выполнения команд оболочки от имени пользователя оболочки. Эта библиотека позволяет читать стандартный вывод (stdout), стандартный поток ошибок (stderr) и записывать данные в стандартный поток ввода (stdin) процесса sh, запущенного оболочкой. Фактически, она является бэкпортом 
UiAutomation#executeShellCommandRweпредставленного в API 34. 
Версия 2.4
Версия 2.4.0-альфа06
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-альфа05
18 июня 2025 г.
 Выпущен androidx.test.uiautomator:uiautomator:2.4.0-alpha05 . Версия 2.4.0-alpha05 содержит следующие коммиты .
Изменения API
-  Добавлен 
UiObject2#waitForStableкак сокращение дляUiObject2#accessibilityNodeInfo#waitForStable() 
Версия 2.4.0-альфа04
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-альфа03
20 мая 2025 г.
 Выпущен androidx.test.uiautomator:uiautomator:2.4.0-alpha03 . Версия 2.4.0-alpha03 содержит следующие коммиты .
Исправления ошибок
-  Исправлена ошибка 
waitForStableInActiveWindowвызывавшая NPE в некоторых случаях ( Ibf50f , b/417046391 ). 
Версия 2.4.0-альфа02
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-альфа01
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-альфа05
1 ноября 2023 г.
 Выпущен 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 ). - Исправлена возможная ошибка NPE, если идентификатор дисплея не может быть определен при дампе узлов ( Icafcb ).
 - Добавлено предупреждение при выполнении кликов/прокрутки на некликабельных/прокручиваемых объектах ( I4a5d9 ).
 -  Уменьшена скорость прокрутки 
UiObject2по умолчанию для повышения надежности ( I5e071 ). 
Версия 2.3.0-альфа04
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)для определения размеров дисплея по его идентификатору ( Ie6544 ). -  Повторно добавлены методы 
wait(SearchCondition, long)иwait(UiObject2Condition, long)для обратной совместимости ( Iebfda ). -  Изменен 
UiDevice#executeShellCommandна публичный, но не рекомендуется вместо скрытого ( Ic48a1 ). 
Исправления ошибок
-  Обновлено внедрение 
MotionEventдля уменьшения нестабильности за счет придания приоритета точности жестов над скоростью ( 678ca3 ). - Добавлена трассировка ресурсоемких методов для выявления узких мест производительности ( d17de3 ).
 - Добавлен механизм повторных попыток при инициировании соединения UiAutomation ( 048caf ).
 -  Исправлена возможная ошибка NPE из-за нулевых узлов в 
UiDevice#dumpWindowHierarchy( b725eb ). - Исправлены непредвиденные ошибки при запросах или работе на частных дисплеях ( 985db6 , 7053d4 ).
 
Версия 2.3.0-альфа03
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-альфа02
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-альфа01
7 сентября 2022 г.
 Выпущен 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 ).