Teste Uiautomator
| Atualização mais recente | Versão estável | Versão candidata a lançamento | Versão Beta | Versão Alfa |
|---|---|---|---|---|
| 17 de junho de 2026 | 2.3.0 | 2.4.0-rc01 | - | - |
Declarar dependências
Para adicionar uma dependência ao teste, é preciso adicionar o repositório Maven do Google ao seu projeto. Leia Repositório Maven do Google para mais informações.
Adicione as dependências dos artefatos necessários ao arquivo build.gradle do
seu app ou módulo:
Groovy
dependencies { // Use to implement UIAutomator tests androidTestImplementation "androidx.test.uiautomator:uiautomator:2.4.0-rc01" }
Kotlin
dependencies { // Use to implement UIAutomator tests androidTestImplementation("androidx.test.uiautomator:uiautomator:2.4.0-rc01") }
Para mais informações sobre dependências, consulte Adicionar dependências de build.
Feedback
Seu feedback ajuda a melhorar o Jetpack. Avise se você descobrir novos problemas ou tiver ideias para melhorar esta biblioteca. Consulte os problemas conhecidos nesta biblioteca antes de criar um novo. Adicione seu voto a um problema clicando no botão de estrela.
Consulte a documentação do Issue Tracker para saber mais.
Teste Uiautomator Shell: versão 1.0
Versão 1.0.0-alpha03
3 de dezembro de 2025
Lançamento de androidx.test.uiautomator:uiautomator-shell:1.0.0-alpha03. A versão 1.0.0-alpha03 contém estas confirmações.
Mudanças na API
- A espera de
startActivityfoi alterada para aguardar uma nova janela (I35da6, b/440021797). screenSizePixelfoi atualizado emRecorderCommands(If558c, b/429173157).
Versão 1.0.0-alpha02
13 de agosto de 2025
Lançamento de androidx.test.uiautomator:uiautomator-shell:1.0.0-alpha02. A versão 1.0.0-alpha02 contém estas confirmações.
Versão 1.0.0-alpha01
18 de junho de 2025
Lançamento de androidx.test.uiautomator:uiautomator-shell:1.0.0-alpha01. A versão 1.0.0-alpha01 inclui estes commits.
Novos recursos
- Primeira versão Alfa da biblioteca de shell do ui-automator para executar comandos de shell como usuário de shell. Essa biblioteca permite ler stdout, stderr e gravar no stdin de um processo sh iniciado pelo shell. Na verdade, ela faz o backport de
UiAutomation#executeShellCommandRweintroduzido na API 34.
Versão 2.4
Versão 2.4.0-rc01
17 de junho de 2026
Lançamento de androidx.test.uiautomator:uiautomator:2.4.0-rc01, androidx.test.uiautomator:uiautomator-shell:2.4.0-rc01 e androidx.test.uiautomator:uiautomator-shell-android:2.4.0-rc01. A versão 2.4.0-rc01 contém estas confirmações.
Versão 2.4.0-beta02
11 de março de 2026
Lançamento de androidx.test.uiautomator:uiautomator:2.4.0-beta02 e androidx.test.uiautomator:uiautomator-shell:2.4.0-beta02. A versão 2.4.0-beta02 contém estas confirmações.
Correções de bugs
UiObject2#scrollToElementOrNullfoi corrigido para gerar uma exceção em vez de retornarnull, e o tipo de retorno foi atualizado (If0109, b/479892735).
Versão 2.4.0-beta01
11 de fevereiro de 2026
Lançamento de androidx.test.uiautomator:uiautomator:2.4.0-beta01 e androidx.test.uiautomator:uiautomator-shell:2.4.0-beta01. A versão 2.4.0-beta01 contém estas confirmações.
Mudanças na API
- Os comandos sem estado agora são singletons. (I3394c, b/429173157)
- A API
RecorderCommandsfoi atualizada. (Ie09e8, b/429173157) - A API
RecorderCommandsfoi simplificada para ter um ciclo de vida bem definido. (I30f89, b/444305673)
Versão 2.4.0-alpha07
3 de dezembro de 2025
Lançamento de androidx.test.uiautomator:uiautomator:2.4.0-alpha07. A versão 2.4.0-alpha07 contém estas confirmações.
Mudanças na API
- A espera de
startActivityfoi alterada para aguardar uma nova janela. Isso torna o lançamento geralmente síncrono e permite que versões futuras do Macrobenchmark configurem a detecção de conclusão do lançamento. (I35da6, Id6e6f, b/440021797) - A API foi removida sem um nome de pacote explícito em
UiAutomatorTestScope. (I8c285, b/413417205)
Versão 2.4.0-alpha06
13 de agosto de 2025
Lançamento de androidx.test.uiautomator:uiautomator:2.4.0-alpha06. A versão 2.4.0-alpha06 contém estas confirmações.
Novos recursos
- APIs baseadas em janelas foram adicionadas para melhorar os testes de várias janelas. Por exemplo,
UiDevice#findWindowagora pode ser usado para encontrar umUiWindowespecífico de acordo com umByWindowSelectorcriado com métodos de fábricaBy.Window. (I359c4, I40528, I8c963)
Versão 2.4.0-alpha05
18 de junho de 2025
Lançamento de androidx.test.uiautomator:uiautomator:2.4.0-alpha05. A versão 2.4.0-alpha05 contém estas confirmações.
Mudanças na API
UiObject2#waitForStablefoi adicionado como um atalho paraUiObject2#accessibilityNodeInfo#waitForStable().
Versão 2.4.0-alpha04
4 de junho de 2025
Lançamento de androidx.test.uiautomator:uiautomator:2.4.0-alpha04. A versão 2.4.0-alpha04 contém essas confirmações.
Mudanças na API
onViewfoi renomeado comoonElementpara esclarecer que funciona com o Compose (I53a3b, b/419006806).
Correções de bugs
- Correção de
waitForStableInActiveWindow(290457f1, b/420349130).
Versão 2.4.0-alpha03
20 de maio de 2025
Lançamento de androidx.test.uiautomator:uiautomator:2.4.0-alpha03. A versão 2.4.0-alpha03 contém estas confirmações.
Correções de bugs
waitForStableInActiveWindowfoi corrigido para não gerar NPE em alguns casos (Ibf50f, b/417046391).
Versão 2.4.0-alpha02
7 de maio de 2025
Lançamento de androidx.test.uiautomator:uiautomator:2.4.0-alpha02. A versão 2.4.0-alpha02 contém estas confirmações.
Novos recursos
- Formato inicial da nova API
Uiautomator.UiAutomatorTestScopepode ser criado pela fábricauiAutomator, que dá acesso às novas APIsonView. - Regras iniciais do Lint para avisar sobre o uso de
AccessibilityNodeInfo#getTexte sugerir o uso detextAsString.
Mudanças na API
Configurator#setDefaultDisplayIdfoi adicionado para definir um ID de tela para restringir todas as pesquisas a (Icdf17).Searchable(interface compartilhada porUiDeviceeUiObject2) foi alterado para público por conveniência (I67f18).
Correções de bugs
- O processamento de teclas de meta em
UiDevice#pressKeyCodesfoi corrigido. (I73f80). UiDevice#getWindowRootsfoi atualizado para sempre retornar raízes na ordem Z (I87426).- Foi corrigido um problema em que alguns gestos estavam incompletos (I60dd3, If4edd).
- Foi corrigido um loop infinito raro ao chamar
UiDevice#scrollUntil(I39989).
Versão 2.4.0-alpha01
26 de junho de 2024
Lançamento de androidx.test.uiautomator:uiautomator:2.4.0-alpha01. A versão 2.4.0-alpha01 contém estas confirmações.
Mudanças na API
Configurator#getKeyInjectionDelayesetKeyInjectionDelayforam descontinuados porque o parâmetro não é mais usado, já que o texto é sempre injetado diretamente, em vez de por pressionamentos de tecla. (I3bcc5).
Correções de bugs
- O atraso entre os eventos de movimento
UiObject2foi atualizado para considerar taxas de atualização dinâmicas (ou seja, Smooth Display) (I43f12). - A instabilidade da obsolescência do nó de acessibilidade em algumas interfaces foi reduzida invalidando periodicamente o cache de acessibilidade (I3be25).
- As
StaleObjectExceptions que ocorriam ao chamartoStringouhashCodeem umUiObject2obsoleto foram corrigidas. (I38ea1). - O desempenho de
UiWatcherfoi melhorado ignorando chamadaswaitForIdledesnecessárias. (I8c65e). - Imprecisões do javadoc foram corrigidas, especialmente para esclarecer quando cada parâmetro
Configuratoré usado. (Ie10b1, I71631).
Versão 2.3.0
Versão 2.3.0
21 de fevereiro de 2024
Lançamento de androidx.test.uiautomator:uiautomator:2.3.0. A versão 2.3.0 contém estas confirmações.
Mudanças importantes desde a versão 2.2.0
- Suporte a várias telas: foi adicionado suporte para encontrar e operar objetos em várias telas, além de métodos
UiDevicepara gerenciar telas secundárias (Ie644, I912cd). - Novos seletores:
- Condições personalizadas: uma interface
Conditionfoi exposta para oferecer suporte a condições de espera personalizadas, e os métodosUiDevice#wait,UiObject2#waiteUiObject2#scrollUntilcorrespondentes foram adicionados (27c0ea, 099d6e). - Correções de bugs e confiabilidade
- Foi corrigido um problema em que os cálculos de tamanho de exibição, algumas vezes, eram incorretos e podiam ignorar partes da tela (Ifc016). As coordenadas e os deslocamentos usados nos testes podem precisar ser ajustados.
- A injeção de
MotionEventfoi atualizada para melhorar a precisão (678ca3) e emular melhor os gestos do usuário (454450). - A confiabilidade de rolagens (I7b059), rotações (c6cea0), cliques longos (49572b), pinças (3c619a) e muito mais foi melhorada.
Versão 2.3.0-rc01
7 de fevereiro de 2024
Lançamento de androidx.test.uiautomator:uiautomator:2.3.0-rc01 sem mudanças. A versão 2.3.0-rc01 contém estas confirmações.
Versão 2.3.0-beta01
13 de dezembro de 2023
Lançamento de androidx.test.uiautomator:uiautomator:2.3.0-beta01. A versão 2.3.0-beta01 contém estas confirmações.
Mudanças na API
- Os métodos de margem baseados em porcentagem de
UiObject2foram renomeados comosetGestureMarginPercentageesetGestureMarginsPercentagepara manter a consistência (I24435).
Correções de bugs
- O erro gerado quando uma tela secundária não é encontrada ou não está acessível foi melhorado (116b23).
Versão 2.3.0-alpha05
1º de novembro de 2023
Lançamento de androidx.test.uiautomator:uiautomator:2.3.0-alpha05. A versão 2.3.0-alpha05 contém estas confirmações.
Mudanças na API
UiObject2#getDrawingOrderfoi adicionado para expor informações de ordem de desenho (z-index). (I5dfa4).- Os métodos
UiDeviceforam adicionados para receber, definir, congelar e descongelar a rotação de telas secundárias. (I912cd).
Correções de bugs
- A repetição foi adicionada a
UiObject2#scrollUntilquando o final da rolagem não pôde ser detectado (Ibac6f). - Foi corrigido um problema em que
UiDeviceusava uma instânciaInstrumentationobsoleta se ela fosse recriada (I18cae). - Foi corrigido um possível NPE se o ID da tela não puder ser determinado ao despejar nós (Icafcb).
- Foi adicionado um aviso ao realizar cliques/rolagens em objetos não clicáveis/roláveis (I4a5d9).
- A velocidade de rolagem padrão de
UiObject2foi reduzida para melhorar a confiabilidade (I5e071).
Versão 2.3.0-alpha04
26 de julho de 2023
Lançamento de androidx.test.uiautomator:uiautomator:2.3.0-alpha04. A versão 2.3.0-alpha04 contém estas confirmações.
Mudanças na API
By.hasParenteBy.hasAncestorforam adicionados para oferecer suporte à localização de objetos de acordo com os pais (I93c36).UiObject2#getHintfoi adicionado para recuperar o texto de dica de um objeto, e os métodosBy.hintforam adicionados para selecionar objetos de acordo com o texto de dica (Idd345).By.displayIdfoi adicionado para oferecer suporte à seleção de objetos de acordo com a tela em que estão (I1825b).- Os métodos
UiDevice#getDisplayHeight(int)eUiDevice#getDisplayWidth(int)foram adicionados para encontrar as dimensões de uma tela pelo ID (Ie6544). - Os métodos
wait(SearchCondition, long)ewait(UiObject2Condition, long)foram adicionados novamente para compatibilidade com versões anteriores (Iebfda). UiDevice#executeShellCommandfoi alterado para público, mas descontinuado em vez de oculto (Ic48a1).
Correções de bugs
- Injeção de
MotionEventatualizada para reduzir a instabilidade, priorizando a acurácia do gesto em relação à velocidade (678ca3). - O rastreamento foi adicionado a métodos com muitos recursos para identificar gargalos de desempenho (d17de3).
- Um mecanismo de repetição foi adicionado ao iniciar uma conexão UiAutomation (048caf).
- Foi corrigido um possível NPE de nós nulos em
UiDevice#dumpWindowHierarchy(b725eb). - Foram corrigidos erros inesperados ao consultar ou operar em telas particulares (985db6, 7053d4).
Versão 2.3.0-alpha03
19 de abril de 2023
Lançamento de androidx.test.uiautomator:uiautomator:2.3.0-alpha03. A versão 2.3.0-alpha03 contém estas confirmações.
Mudanças na API
- Uma interface
Conditionfoi exposta para permitir condições de espera personalizadas em vez de depender apenas dos recursos integrados emUntil, e os métodosUiDevice#waiteUiObject2#waitforam atualizados para aceitar esta interface (27c0ea). UiObject2#scrollUntilfoi adicionado para oferecer suporte à rolagem até que uma condição seja atendida e para atingir a paridade comUiScrollable(099d6e).UiDevice#setOrientationPortraitesetOrientationLandscapeforam adicionados para facilitar as rotações em tipos de dispositivos (e13cb7).UiObject2#setGestureMarginPercentfoi adicionado para oferecer suporte à definição de margens relativas ao tamanho do objeto. (Ib8c77)
Correções de bugs
- Os métodos
UiScrollableforam corrigidos para não usar coordenadas inválidas em SDKs 18 a 22 (b53ece). - Foi corrigido um problema em que
UiObject2#setTexteclearTextnão conseguiam modificar o texto nos SDKs 18 e 19 (77e41d). - Foi corrigido um problema em que
UiWatchers não eram executados na ordem correta (c85f92). - Foi corrigido um problema em que a rotação do dispositivo ainda não estava concluída após uma mudança de orientação
UiDevice(c6cea0). - A confiabilidade de cliques longos, arrastar e pinças foi melhorada (49572b, 3c619a).
Versão 2.3.0-alpha02
11 de janeiro de 2023
Lançamento de androidx.test.uiautomator:uiautomator:2.3.0-alpha02. A versão 2.3.0-alpha02 contém estas confirmações.
Mudanças na API
- A geração de registros foi reformulada em toda a biblioteca para fornecer mais informações, avisar sobre possíveis problemas e melhorar a consistência.
- A
UiDevice#pressKeyCodesfoi adicionada para permitir o pressionamento de várias teclas simultaneamente, por exemplo, pressionando POWER e VOLUME_DOWN para fazer uma captura de tela (22e525). - A
UiDevice#setCompressedLayoutHierarchyfoi adicionada e aUiDevice#setCompressedLayoutHeirarchyfoi descontinuada para corrigir um erro de digitação no nome do método (4e2f65). - A
UiAutomatorInstrumentationTestRunnerfoi marcada como descontinuada por lidar comUiAutomatorTestCases descontinuadas e não ser mais necessária (be6c85). - Atualizamos o atraso entre
MotionEvents deUiObject2para o dobro da taxa de atualização da tela com o objetivo de emular melhor os gestos do usuário (454450). - Adição de suporte para texto com várias linhas e correspondência de descrição (1625e6, b/255787130).
Correções de bugs
- Correção de
StaleObjectExceptions que às vezes eram geradas ao consultar ou aguardar objetos (4cbcc0). - Correção dos valores de retorno de
UiScrollable#scrollToBeginning,scrollToEnd,flingToBeginningeflingToEndque não indicam se o início/fim foi alcançado (d33e06). - Correção dos métodos
UiScrollable#scrollForwardescrollBackward, ignorando o tempo limite configurado (29e4f3). - Correção do construtor de cópia
BySelector, que não processava seletores de profundidade (6c7b91). - Correção do processamento de valores percentuais inválidos em
UiObject#pinchInepinchOut(01b973). - Correção de um problema raro em que o suporte a várias janelas era perdido se a conexão da
UiAutomationfosse redefinida (1bb956).
Versão 2.3.0-alpha01
7 de setembro de 2022
Lançamento de androidx.test.uiautomator:uiautomator:2.3.0-alpha01. A versão 2.3.0-alpha01 contém estas confirmações.
Mudanças na API
- Anotação de nulidade para todos os métodos públicos.
- A injeção de
MotionEventagora é assíncrona com um pequeno atraso para gestosUiObject2mais suaves. - O intervalo de pesquisa durante a espera foi reduzido de 1.000 ms para 100 ms.
UiDevice#wakeUpeUiDevice#sleepforam atualizados para usarKEYCODE_WAKEUPeKEYCODE_SLEEPpara oferecer suporte a dispositivos que substituem o botão liga/desliga.- Foram adicionados o elemento
UiObject2#getDisplayIde suporte para encontrar e gerenciar objetos em várias telas. - Os métodos
UiObject#clickeUiObject2#clickAndWaitforam adicionados para clicar em um ponto usando as coordenadas dele.
Correções de bugs
- Foi corrigido um problema em que os cálculos de tamanho da tela, algumas vezes, eram incorretos e podiam ignorar partes da tela, especialmente no modo de várias janelas (Ifc016c).
- Foi corrigido o dimensionamento de capturas de tela em
UiDevice#takeScreenshot(Id80ad6). - Melhorias na confiabilidade de
Until.scrollFinishedeUiObject2#scroll(I7b0595). - Os avisos de
IncorrectContextUseViolationno modo estrito foram corrigidos (Iffa6a0).