- Visão geral
- Automação de Interface Gráfica
- Aplicativos e tecnologias automatizados com a Automação de Interface Gráfica
- Compatibilidade do projeto
- UI-ANA-016 - Extrair URL de navegador aberto
- UI-ANA-017 - ContinuarComErro verdadeiro
- UI-ANA-018 - Listar atividades de OCR/Imagem
- UI-DBP-006 - Uso do contêiner
- UI-DBP-013 - Uso Incorreto da Automação do Excel
- UI-DBP-030 - Uso de variáveis proibidas em seletores
- UI-PRR-001 - Simular clique
- UI-PRR-002 - Simular Digitação
- UI-PRR-003 - Uso incorreto do aplicativo aberto
- UI-PRR-004 - Atrasos Embutidos em Código
- UI-REL-001 - Idx grande em Seletores
- UI-SEC-004 - Dados de e-mail do seletor
- UI-SEC-010 — restrições de app/URL
- UI-USG-011 - Atributos não permitidos
- UX-SEC-010 — restrições de app/URL
- UX-DBP-029 - Uso de senha não segura
- UI-PST-001 - Nível de log de auditoria nas configurações do projeto
- Ferramenta de Migração de Navegador do UiPath
- Região do Recorte
- Computer Vision Recorder
- Activities index
- Ativar
- Anchor Base
- Anexar Navegador
- Anexar Janela
- Block User Input
- Texto Explicativo
- Marcar
- Click
- Clicar na Imagem
- Click Image Trigger
- Click OCR Text
- Clicar no Texto
- Click Trigger
- Close Application
- Fechar Guia
- Close Window
- Context Aware Anchor
- Copy Selected Text
- Element Attribute Change Trigger
- Element Exists
- Element Scope
- Element State Change Trigger
- Export UI Tree
- Extrair Dados Estruturados
- Find Children
- Localizar Elemento
- Localizar Imagem
- Find Image Matches
- Find OCR Text Position
- Localizar Elemento Relativo
- Find Text Position
- Get Active Window
- Get Ancestor
- Get Attribute
- Get Event Info
- Get From Clipboard
- Obter Texto Completo
- Get OCR Text
- Get Password
- Get Position
- Get Source Element
- Get Text
- Obter Texto Visível
- Voltar
- Avançar
- Ir para a Página Inicial
- Google Cloud Vision OCR
- Hide Window
- Highlight
- Hotkey Trigger
- Hover
- Focalizar Imagem
- Hover OCR Text
- Focalizar Texto
- Imagem Existe
- Indicate On Screen
- Inject .NET Code
- Inject Js Script
- Invoke ActiveX Method
- Key Press Trigger
- Carregar Imagem
- Maximize Window
- Microsoft Azure Computer Vision OCR
- Microsoft OCR
- Microsoft Project Oxford Online OCR
- Minimize Window
- Monitorar eventos
- Mouse Trigger
- Move Window
- Navegar Para
- OCR Text Exists
- On Element Appear
- On Element Vanish
- Aparecer Na Imagem
- Desaparecer Na Imagem
- Abrir Aplicativo
- Abrir Navegador
- Atualizar Navegador
- Replay User Event
- Restore Window
- Save Image
- Select Item
- Select Multiple Items
- Enviar Tecla de Acesso
- Set Clipping Region
- Set Focus
- Set Text
- Set To Clipboard
- Set Web Attribute
- Show Window
- Iniciar Processo
- System Trigger
- Take Screenshot
- Tesseract OCR
- Texto Existe
- Dica de ferramenta
- Type Into
- Digitar Texto Seguro
- Use Foreground
- Wait Attribute
- Esperar Elemento Desaparecer
- Aguardar Imagem Desaparecer
- Application event trigger
- Check/Uncheck
- Check App State
- Check Element
- Click
- Click Event Trigger
- Drag and Drop
- Extract Table Data
- For Each UI Element
- Get Attribute
- Get Browser Data
- Get Text
- Get URL
- Go To URL
- Highlight
- Hover
- Inject Js Script
- Keyboard Shortcuts
- Keypress Event Trigger
- Mouse Scroll
- Navigate Browser
- Select Item
- Set Browser Data
- Set Runtime Browser
- Set Text
- Take Screenshot
- Type Into
- Use Application/Browser
- Realize pesquisa no navegador e recupere resultados usando APIs de Automação de interface gráfica
- Navegação na Web
- Localizar imagens
- Clicar em imagens
- Disparar e monitorar eventos
- Criar e substituir arquivos
- Páginas HTML: extrair e manipular informações
- Manipulação de janelas
- Seleção automatizada de listas
- Localizar e manipular elementos de janela
- Gerenciar automação de texto
- Carregar e processar imagens
- Gerenciar ações ativadas pelo mouse
- Automatizar o runtime de aplicativos
- Execução automatizada de um aplicativo local
- Navegação em navegador
- Automação da Web
- Exemplo de escopo de disparador
- Habilitar o suporte de Automação de Interface Gráfica no DevExpress
- Computer Vision Local Server
- Automação Móvel
- Notas de versão
- Compatibilidade do projeto
- Get Log Types
- Get Logs
- Get Page Source
- Get Device Orientation
- Get Session Identifier
- Instalar Aplicativo
- Gerenciar Aplicativo Atual
- Manage Other App
- Open DeepLink
- Abrir URL
- Mobile Device Connection
- Deslizar Direcional
- Padrão de Desenho
- Positional Swipe
- Press Hardware Button
- Set Device Orientation
- Take Screenshot
- Obter parte da captura de tela
- Element Exists
- Execute Command
- Get Attribute
- Get Selected Item
- Get Text
- Set Selected Item
- Set Text
- Deslizar
- Tap
- Type Text
- Creating variables from selector attributes
- Introdução às APIs de automação móvel
- Uso de automação móvel para aplicativo de banco móvel
- Terminal
- Notas de versão
- Sobre o pacote de atividades Terminal
- Compatibilidade do projeto
- Melhores práticas
- Find Text
- Get Color At Position
- Get Cursor Position
- Get Field
- Obter Campo na Posição
- Obter Área da Tela
- Get Text
- Obter Texto na Posição
- Mover Cursor
- Mover cursor para o texto
- Enviar Tecla de Controle
- Send Keys
- Send Keys Secure
- Set Field
- Definir Campo na Posição
- Terminal Session
- Aguardar Texto do Campo
- Aguardar Texto da Tela
- Aguardar Texto na Posição
Atividades do UIAutomation
Uso de automação móvel para aplicativo de banco móvel
Neste tutorial, exploramos como usar o pacote de Automação Móvel para automatizar tarefas dentro de um aplicativo de banco móvel. O tutorial usa o simulador de banco móvel fornecido pelo Bank of America e um Emulador Google Pixel do Sauce Labs. Concentraremo-nos especificamente em automatizar e testar as seguintes ações:
- Fazendo login no aplicativo.
- Implementação de um bloqueio de cartão de débito.
- Visualização de uma reivindicação e captura de tela.
O tutorial fornece instruções sobre como usar tarefas e APIs para automatizar esses cenários.
- Adicione um dispositivo do Sauce Labs ao MDM.
Para obter mais informações sobre a adição de dispositivos, acesse Adicionando dispositivos do Sauce Labs.
- Adicione o simulador de banco móvel do Bank of America ao MDM.
Para obter mais informações sobre a adição de aplicativos, acesse Adicionando aplicativos.
Para seguir as etapas e experimentar o tutorial por conta própria, verifique o seguinte projeto de exemplo: Simulador de banco móvel.
Nesse exemplo, usamos elementos do Repositório de Objetos como elementos de entrada para atividades.Para criar elementos de interface do usuário para celular, estabeleça uma conexão no Mobile Device Manager (MDM) entre o dispositivo de destino e o aplicativo. Em seguida, diretamente no painel Repositório de Objetos, crie cada elemento e use Indicar Elemento para indicar o elemento de interface do usuário específico no dispositivo MDM.
Para seguir facilmente o tutorial, verifique a seguinte lista para a estrutura do Repositório de Objetos:
- Aplicativo do BankOfAmerica, menu MobileScreen
- backFromClaimDetails
- backFromClaimStatus
- BackToMenu
- firstClaimSeeDetails
- Lock
- LockCard
- Login
- ManageDebitCredit
- Menu
- Senha
- swipeMenu
- ID do Usuário
- viewmyclaims
- Estabeleça uma conexão entre o dispositivo e o aplicativo:
- Adicione uma atividade de Conexão de Dispositivo Móvel.
- Use os Selecionar detalhes da conexão para conectar o dispositivo móvel e o aplicativo criados anteriormente.
- Faça login no aplicativo móvel:
- Adicione uma atividade Tap para selecionar o campo ID do usuário, para que você possa inserir um nome de usuário.
- Adicione uma atividade Set Text para inserir o nome de usuário dentro do campo ID do usuário.
- Adicione uma atividade Tap para selecionar o campo Senha, para que você possa inserir a senha.
- Adicione uma atividade Set Text para inserir a senha correspondente.
- Use uma atividade de Toque para selecionar o botão Login.
Figura 1. As primeiras atividades como parte do login no aplicativo
- Bloquear um cartão de débito ou de crédito:
- Adicione uma atividade Tap para navegar até o menu do aplicativo bancário móvel.
- Adicione uma atividade Swipe para deslizar para baixo no menu.
O objetivo é deslizar até que você encontre a seção Gerenciar Débito/Crédito.
- Adicione uma atividade Tap para selecionar a seção Gerenciar Débito/Crédito.
- Adicione uma atividade Tap para selecionar o ícone de Bloqueio para o primeiro cartão que é exibido.
- Adicione uma atividade Swipe para deslizar para baixo no aviso de cartão de bloqueio.
Essa ação permite que você confirme a ação selecionando Bloquear cartão.
- Adicione uma atividade Tap para selecionar Bloquear cartão.
Figura 2. Atividades usadas para bloquear o cartão de débito
- Faça uma captura de tela de uma reivindicação:
- Adicione uma atividade Tap para selecionar o botão Voltar e retorne ao menu principal.
- Adicione uma atividade Swipe para deslizar para baixo no menu principal até que a seção Visualizar Minhas Reivindicações apareça.
- Use uma atividade Tap para selecionar a seção Visualizar Minhas Reivindicações.
- Adicione uma atividade Tap para selecionar Ver detalhes para a primeira reivindicação.
- Use a API TakeScreenshot para fazer uma captura de tela dos primeiros detalhes da reclamação.
Figura 3. Atividades usadas para fazer uma captura de tela de uma reivindicação
- Por fim, depois de fazer a captura de tela, voltamos ao menu principal do aplicativo, usando a atividade Tap para selecionar o elemento de interface gráfica Voltar duas vezes.
Para automatizar um aplicativo móvel usando APIs, grave os elementos móveis do aplicativo dentro do Repositório de Objetos do projeto.Para esse exemplo, criamos um aplicativo BankOfAmerica com um MobileScreen geral, contendo todos os elementos de interface do usuário que usamos para automatizar. Para criar elementos de interface do usuário para celular, estabeleça uma conexão no Mobile Device Manager (MDM) entre o dispositivo de destino e o aplicativo. Em seguida, diretamente no painel Repositório de Objetos, crie cada elemento e use Indicar Elemento para indicar o elemento de interface do usuário específico no dispositivo MDM.
Verifique a lista a seguir para a estrutura do Repositório de Objetos:
- Aplicativo do BankOfAmerica, menu MobileScreen
- backFromClaimDetails
- backFromClaimStatus
- BackToMenu
- firstClaimSeeDetails
- Lock
- LockCard
- Login
- ManageDebitCredit
- Menu
- Senha
- swipeMenu
- ID do Usuário
- viewmyclaims
- Estabeleça uma conexão entre o dispositivo e o aplicativo:
- Crie uma variável do tipo
Connection
, usando a API Connect, com a segunda versão de sobrecarga.Para essa versão de sobrecarga, insira o nome do dispositivo e o nome do aplicativo como Strings, para estabelecer a conexão.
[TestCase] public void Execute() { Connection connection = mobile.Connect( "Android mobile device", "BankOfAmericaSimulator"); Log("Connection established");
[TestCase] public void Execute() { Connection connection = mobile.Connect( "Android mobile device", "BankOfAmericaSimulator"); Log("Connection established");
- Crie uma variável do tipo
- Opcionalmente, para fins de depuração, você pode adicionar uma mensagem
Log
após a conexão. - Faça login no aplicativo móvel:
- Chame a API Tap para clicar no campo ID do usuário.
Essa ação permite que você insira o nome de usuário.
connection.Tap(ObjectRepository.Descriptors.BankOfAmerica.MobileScreen.UserId);
connection.Tap(ObjectRepository.Descriptors.BankOfAmerica.MobileScreen.UserId); - Use a API SetText para inserir um nome de usuário no campo ID do usuário.
connection.SetText(ObjectRepository.Descriptors.BankOfAmerica.MobileScreen.UserId, "john.doe@uipath.com", MobileOptions.SetText().WithSendNewline(false));
connection.SetText(ObjectRepository.Descriptors.BankOfAmerica.MobileScreen.UserId, "john.doe@uipath.com", MobileOptions.SetText().WithSendNewline(false)); - Chame a API Tap para selecionar o campo Senha para que você possa inserir a senha.
connection.Tap(ObjectRepository.Descriptors.BankOfAmerica.MobileScreen.Password);
connection.Tap(ObjectRepository.Descriptors.BankOfAmerica.MobileScreen.Password); - Use a API SetText para inserir uma senha no campo Senha.
O método
WithSendNewLine(false)
garante que o elemento de teclado OK não seja pressionado no dispositivo móvel após o envio do texto. Para obter mais informações sobre as opções disponíveis da API Set Text, acesse Classe MobileOptions.SetTextOptions.connection.SetText(ObjectRepository.Descriptors.BankOfAmerica.MobileScreen.Password, "abcde", MobileOptions.SetText().WithSendNewline(false));
connection.SetText(ObjectRepository.Descriptors.BankOfAmerica.MobileScreen.Password, "abcde", MobileOptions.SetText().WithSendNewline(false)); - Utilizar a API Tap para selecionar Login.
connection.Tap(ObjectRepository.Descriptors.BankOfAmerica.MobileScreen.Login);
connection.Tap(ObjectRepository.Descriptors.BankOfAmerica.MobileScreen.Login);
- Chame a API Tap para clicar no campo ID do usuário.
- Bloquear um cartão de débito ou de crédito:
- Navegue até o menu do aplicativo de banco móvel, usando a API Tap:
connection.Tap(ObjectRepository.Descriptors.BankOfAmerica.MobileScreen.Menu);
connection.Tap(ObjectRepository.Descriptors.BankOfAmerica.MobileScreen.Menu); - Deslize para baixo no menu, usando a API Swipe.
O objetivo é deslizar até que você encontre a seção Gerenciar Débito/Crédito.
connection.Swipe(ObjectRepository.Descriptors.BankOfAmerica.MobileScreen.swipeMenu, ObjectRepository.Descriptors.BankOfAmerica.MobileScreen.ManageDebitCredit, SwipeDirection.Down, 4);
connection.Swipe(ObjectRepository.Descriptors.BankOfAmerica.MobileScreen.swipeMenu, ObjectRepository.Descriptors.BankOfAmerica.MobileScreen.ManageDebitCredit, SwipeDirection.Down, 4); - Selecione a seção Gerenciar Débito/Crédito usando a API Tap.
O método
WithTimeout()
permite que a API pause por um número predeterminado de segundos. Essa pausa dura até que o elemento de interface gráfica de usuário de destino apareça ou um erro seja gerado.connection.Tap(ObjectRepository.Descriptors.BankOfAmerica.MobileScreen.ManageDebitCredit, TapTypeEnum.Single, MobileOptions.Tap().WithTimeout(120));
connection.Tap(ObjectRepository.Descriptors.BankOfAmerica.MobileScreen.ManageDebitCredit, TapTypeEnum.Single, MobileOptions.Tap().WithTimeout(120)); - Para o primeiro cartão que é exibido, selecione o ícone Bloquear usando a API Tap.
connection.Tap(ObjectRepository.Descriptors.BankOfAmerica.MobileScreen.Lock);
connection.Tap(ObjectRepository.Descriptors.BankOfAmerica.MobileScreen.Lock); - Deslize para baixo no aviso de cartão de bloqueio, usando a API Directional Swipe para que possamos confirmar a ação selecionando Bloquear cartão.
connection.DirectionalSwipe(SwipeDirection.Down);
connection.DirectionalSwipe(SwipeDirection.Down); - Selecione Bloquear cartão usando a API Tap.
connection.Tap(ObjectRepository.Descriptors.BankOfAmerica.MobileScreen.LockCard);
connection.Tap(ObjectRepository.Descriptors.BankOfAmerica.MobileScreen.LockCard);
- Navegue até o menu do aplicativo de banco móvel, usando a API Tap:
- Faça uma captura de tela de uma reivindicação.
- Volte ao menu principal, usando a API Tap e o ícone de retorno.
connection.Tap(ObjectRepository.Descriptors.BankOfAmerica.MobileScreen.BackToMenu);
connection.Tap(ObjectRepository.Descriptors.BankOfAmerica.MobileScreen.BackToMenu); - Deslize para baixo no menu principal, até que a seção Visualizar Minhas Reivindicações apareça.
Para essa etapa, usamos a API Swipe, desta vez utilizando a sexta sobrecarga. Essa sobrecarga requer um
IElementDescriptor
para o contêiner, e umSelectorTarget
para o elemento de interface gráfica de destino.Primeiro criamos umSelectorTarget
para a seção Visualizar Minhas Reivindicações e, em seguida, utilize a API Swipe.- Abra o Gerenciamento de Dispositivos Móveis (MDM) e crie a conexão entre o dispositivo móvel e o aplicativo.
- Acesse o Repositório de Objetos e crie um novo elemento para a tela do celular.
- Selecione Indicar Elemento.
- No menu de opções de seleção, copie o controle web identificado pelos seletores.
Para este aplicativo bancário móvel, você tem que garantir que seletores WebView como seletores nativos sejam selecionados como uma opção de seleção.
- Retorne ao editor de código e crie uma variável do tipo
SelectorTarget
. Use o métodoMobileTarget.FromSelector
, que requer como argumento o controle web que você copiou anteriormente.SelectorTarget viewMyClaimsTarget = MobileTarget.FromSelector("<mbl android:className='android.widget.TextView' text='View My Claims' />");
SelectorTarget viewMyClaimsTarget = MobileTarget.FromSelector("<mbl android:className='android.widget.TextView' text='View My Claims' />"); - Use a API Swipe, com a variável
SelectorTarget
para finalizar a ação de deslizar para baixo.connection.Swipe(ObjectRepository.Descriptors.BankOfAmerica.MobileScreen.swipeMenu, viewMyClaimsTarget, SwipeDirection.Down, 20);
connection.Swipe(ObjectRepository.Descriptors.BankOfAmerica.MobileScreen.swipeMenu, viewMyClaimsTarget, SwipeDirection.Down, 20);
- Toque na seção Visualizar Minhas Reivindicações.
connection.Tap(ObjectRepository.Descriptors.BankOfAmerica.MobileScreen.viewmyclaims);
connection.Tap(ObjectRepository.Descriptors.BankOfAmerica.MobileScreen.viewmyclaims); - Toque em Ver detalhes para a primeira reivindicação.
connection.Tap(ObjectRepository.Descriptors.BankOfAmerica.MobileScreen.firstClaimSeeDetails);
connection.Tap(ObjectRepository.Descriptors.BankOfAmerica.MobileScreen.firstClaimSeeDetails); - Use a API TakeScreenshot para fazer uma captura de tela dos primeiros detalhes da reclamação.
connection.TakeScreenshot();
connection.TakeScreenshot();
- Volte ao menu principal, usando a API Tap e o ícone de retorno.
- Por fim, depois de fazer a captura de tela, retornamos ao menu principal do aplicativo, tocando no elemento Voltar do elemento de interface gráfica duas vezes.
connection.Tap(ObjectRepository.Descriptors.BankOfAmerica.MobileScreen.backFromClaimDetails); connection.Tap(ObjectRepository.Descriptors.BankOfAmerica.MobileScreen.backFromClaimStatus);
connection.Tap(ObjectRepository.Descriptors.BankOfAmerica.MobileScreen.backFromClaimDetails); connection.Tap(ObjectRepository.Descriptors.BankOfAmerica.MobileScreen.backFromClaimStatus);