Тестовый 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 ).
