Тестовый Uiautomator
Последнее обновление | Стабильный релиз | Кандидат на релиз | Бета-релиз | Альфа-релиз |
---|---|---|---|---|
20 мая 2025 г. | 2.3.0 | - | - | 2.4.0-альфа03 |
Объявление зависимостей
Чтобы добавить зависимость от теста, необходимо добавить репозиторий Google Maven в свой проект. Прочтите репозиторий Google Maven для получения дополнительной информации.
Добавьте зависимости для необходимых артефактов в файл build.gradle
для вашего приложения или модуля:
классный
dependencies { // Use to implement UIAutomator tests androidTestImplementation "androidx.test.uiautomator:uiautomator:2.4.0-alpha03" }
Котлин
dependencies { // Use to implement UIAutomator tests androidTestImplementation("androidx.test.uiautomator:uiautomator:2.4.0-alpha03") }
Дополнительную информацию о зависимостях см. в разделе Добавление зависимостей сборки .
Обратная связь
Ваши отзывы помогают сделать Jetpack лучше. Сообщите нам, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете добавить свой голос к существующей проблеме, нажав кнопку со звездочкой.
Более подробную информацию смотрите в документации Issue Tracker .
Версия 2.4
Версия 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
для учета динамической частоты обновления (т. е. плавного отображения) ( 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 ). - Обновлена задержка между событиями
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-альфа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 ).