- Notas de Versão
- Introdução
- Configuração e Instalação
- Projetos de automação
- Sobre a publicação de projetos de automação
- Projetando automações
- Gerenciamento de pacotes de atividades
- Como definir as configurações do projeto de atividades
- Como assinar pacotes
- Governança
- Como importar entidades
- Experiência de Criação Moderna
- Vincular um projeto a uma ideia no Automation Hub
- Usando o Gerenciador de dados
- Dependências
- Tipos de fluxos de trabalho
- Fluxo de controle
- Comparação de arquivos
- Melhores Práticas de Automação
- Integração de controle de origem
- Sobre o controle de versões
- Como gerenciar projetos com o TÁS
- Como gerenciar projetos com o SN
- Dif. do fluxo de trabalho
- Depuração
- Geração de logs
- A ferramenta de diagnóstico
- Analisador de Fluxo de Trabalho
- Sobre o Analisador de Fluxo de Trabalho
- STN MG-001 - Convenção de nomenclatura de variáveis
- STN MG-002 - Convenção de nomenclatura de argumentos
- STN MG-004 - Duplicação de Nome de Exibição
- STN MG-005 - Variável substitui variável
- STN MG-006 - Variável substitui argumento
- STN MG-008 - Comprimento de variável excedido
- STN MG-009 - Variáveis Catablema de prefixo
- STN MG-011 - Argumentos Catablema de prefixo
- STN MG-012 - Valores padrão de argumentos
- STN MG-016 - Comprimento do argumento excedido
- ST-NMG-017 - O nome da classe corresponde ao namespace padrão
- SR-DB-002 - Contagem alta de argumentos
- SR-DB-003 - Esvaziar bloco catechu
- SR-DB-007 - Múltiplas camadas Com fluxograma
- ST-DPB-010 - Várias instâncias de [Fluxo de trabalho] ou [Caso de teste]
- SR-DB-020 - Propriedades de saída indefinidas
- SR-DB-021 - Tempo limite embutido em código
- SR-DB-023 - Fluxo de trabalho vazio
- SR-DB-024 - Verificação da atividade Persistente
- SR-DB-025 - Pré-requisito de serialidade de variáveis
- SR-DB-026 - Uso da atividade Dela
- SR-DB-027 - Melhores práticas de persistência
- SR-DB-028 - Pré-requisito de serialidade de argumentos
- SR-US-005 - Argumentos de atividades embutidos em código
- SR-US-009 - Variáveis não utilizadas
- SR-US-010 - Dependências não utilizadas
- SR-US-014 - Restrições de pacotes
- SR-US-017 - Modificador de parâmetro inválido
- SR-US-020 - Mensagens de logue mínimas
- SR-US-024 - Não utilizado e postergado
- SR-US-025 - Uso incorreto do valor salvo
- SR-US-026 - Restrições da atividade
- SR-US-027 - Pacotes necessários
- ST-USG-28 — restringir modelos de invocação de arquivos
- ST-USG-032 — rótulos obrigatórios
- ST-USG-034 — URL do Automation Hub
- Variáveis
- Argumentos
- Namespaces Importados
- Automações codificadas
- Introdução
- Registro de serviços personalizados
- Contextos Antes e Depois
- Gerando código
- Geração de caso de teste codificado a partir de casos de teste manuais
- Automação assistida baseada em gatilho
- Gravação
- Elementos de Interface Gráfica
- Seletores
- Repo. de Objetos
- Sobre o repositório de objetos
- Como criar um repositório de objetos
- Como reutilizar objetos e bibliotecas de EU
- Ferramenta Sincronizar Repositório de Objetos
- Extração de Dados
- Automação de imagem e texto
- Automação de Tecnologias Citrix
- Automação RDP
- Automação do Varear Horizonte
- Automação da Salesforce
- Automação SAP
- Automaçāo da interface gráfica do macOS
- A ferramenta ScreenScrapeJavaSupport
- O protocolo Servodrive
- Extensões
- Sobre extensões
- Ferramenta SetupExtensions
- UiPathRemoteRuntime.exe não está sendo executado na sessão remota
- O UiPath Remote Runtime bloqueia a sessão do Citrix de ser fechado
- O UiPath Remote Runtime causa vazamento de memória
- O pacote UiPath.UIAutomation.Activities e as versões do UiPath Remote Runtime são incompatíveis
- A extensão do UiPath necessária não está instalada na máquina remota
- Configurações de resolução de tela
- Group Policies
- Não é possível se comunicar com o navegador
- A extensão do Chrome é removida automaticamente
- A extensão pode ter sido corrompida
- Verifique se a extensão para o Chrome está instalada e habilitada
- Check if ChromeNativeMessaging.exe is running
- Check if ComSpec variable is defined correctly
- Habilite o Acesso às URLs do arquivo e o Modo Anônimo
- Multiple browser profiles
- Group Policy conflict
- Known issues specific to MV3 extensions
- Lista de extensões para Chrome
- Extensão do Chrome no Mac
- Group Policies
- Não é possível se comunicar com o navegador
- A extensão Edge é removida automaticamente
- A extensão pode ter sido corrompida
- Check if the Extension for Microsoft Edge is installed and enabled
- Check if ChromeNativeMessaging.exe is running
- Check if ComSpec variable is defined correctly
- Enable access to file URLs and InPrivate mode
- Multiple browser profiles
- Group Policy conflict
- Known issues specific to MV3 extensions
- Lista de extensões para Edge
- Extensão para Safari
- Extensão para o Varear Horizonte
- Extensão para Amazon WorkSpaces
- Plug-in do SAP Solution Manager
- Suplemento do Excel
- Test Suite — Studio
- Solução de problemas
- Sobre a solução de problemas
- Erros de compilação de assembly
- Suporte e limitações do Microsoft Apo-V
- Solução de problemas do Internet Explorer x64
- Problemas do Microsoft Office
- Como identificar elementos de EU em PDF com opções de acessibilidade
- Reparando o suporte da Active Accessibility
- Validation of large Windows-legacy projects takes longer than expected
Guia do usuário do Studio
Como criar um repositório de objetos
Um repositório de objetos é uma coleção de elementos agrupados por aplicativos, versões e telas que podem vir de um(a):
- projeto local, ou seja, o repositório local.
- biblioteca, ou seja Dependências da Biblioteca da Interface Gráfica do projeto atual.
Um Repositório Local pode ser criado:
- usando o gravador Caputar Elementos para capturar descritores de interface gráfica.
- manualmente, por meio da criação de aplicativos, telas e elementos diretamente no painel Repositório de Objetos.
Uma Biblioteca de Interface Gráfica pode ser criada:
- extraindo-se o repositório local de qualquer projeto para um projeto de biblioteca, publicando-o como um pacote do NuGet.
-
começando de uma nova biblioteca, criando o repositório ali e publicando-o como um pacote do NuGet.
Assim, você poderá usar os pacotes do Gerenciador NuGet para Biblioteca de Interface Gráfica, adicionando-os como dependências aos seus processos.
Importante: o gravador Capture Elements grava apenas objetos para reutilização em projetos; o gravador não gera um fluxo de trabalho no painel Designer.
Em uma biblioteca ou processo, clique no botão Capturar elementos no Repositório de objetos para abrir o gravador Capturar elementos.
Clique em Iniciar gravação para começar a capturar elementos. O gravador Capturar Elementos utiliza a tecnologia Unified Target, disponível na versão 20.10 ou superior do pacote UIAutomation.Activities para capturar destinos e âncoras com um certo nível de precisão em relação a cada seletor, imagem ou âncora.
Os Elementos de interface gráfica são capturados juntos com um Seletor, Seletor Difuso e Imagem, cada qual com um nível de precisão. É possível optar por manter somente um ou todos esses elementos de destino. O mesmo vale para os elementos de âncora associados a cada elemento de interface gráfica no aplicativo.
No gravador, você pode:
- Clique em Adicionar Aplicativo ou Adicionar Tela para adicionar um novo aplicativo ou tela.
- A qualquer momento, pause a gravação, clicando em Pausar. Para retomar a gravação, clique novamente em Gravar.
-
Gerencie os relementos gravados:
- Atualize as propriedades de uma tela ou elemento, selecionando-a no painel esquerdo e editando-a no painel Propriedades, à direita.
- Reorganize e agrupe os elementos, arrastando-os e soltando-os no painel esquerdo.
- Realce os elementos que você já capturou para identificá-los facilmente passando o mouse sobre seus nomes na janela do Capturar Elementos e usando o botão .
-
Enquanto a gravação está pausada:
- Remova um elemento, clicando com o botão direito do mouse e selecionando Excluir.
- Crie um novo elemento como child de uma tela ou elemento, clicando com o botão direito do mouse no elemento existente e selecionando Criar Elemento.
- Ou então, clique em Configurações e, em seguida, selecione se você deseja configurar cada elemento ou aplicar alterações automaticamente (ambas as configurações são habilitadas por padrão).
- Clique em Salvar objetos na biblioteca para salvar as alterações, fechar o gravador e retornar ao seu projeto.
Você pode usar o recurso Capturar Todos os Elementos para capturar todos os elementos de um aplicativo usando a tecnologia do Computer Vision, e depois adicioná-los ao Repositório de Objetos. Esse método é útil para cenários em que a automação depende muito do uso do Repositório de Objetos, pois você não precisa mais adicionar manualmente todos os elementos da interface gráfica, economizando assim tempo ao criar o processo.
- Clique no botão Capturar todos os elementos no assistente do Capturar Elementos. Você é solicitado a indicar a janela que contém os elementos que você deseja adicionar ao Object Repository. Você também pode selecionar apenas uma região do aplicativo de destino clicando e arrastando um retângulo da área da qual você deseja capturar elementos.
-
Ao indicar o aplicativo, todos os elementos são detectados e destacados em verde. Você também pode desmarcar manualmente os elementos que não quiser adicionar ao Repositório de Objetos. A janela do Assistente de Digitalização permite Escolher todos ou Desmarcar todos os elementos, usando os botões respectivos. Se você selecionar a caixa de seleção Capturar texto, os elementos de texto também serão capturados. Depois que você terminar sua seleção, clicar em Capturar fecha o Assistente de Digitalização e retorna você para a janela do Capturar Elementos.
Se houver elementos que não foram identificados, você pode nos ajudar a melhorar a detecção enviando uma imagem para o UiPath para análise. Clique em Relatar problemas, selecione uma área com elementos não identificados e, então, selecione Enviar.
Observação:Esse recurso requer que você tenha configurado um servidor do Computer Vision para usar. Há vários métodos disponíveis para fazer isso, conforme mostrado a seguir:
Após escolher seu tipo de servidor preferido, você deve selecioná-lo para ser usado no projeto atual editando as Configurações do projetodo Servidor e Apikey .
Aplicativos, telas e elementos devem receber nomes descritivos no gravador Capturar Elementos para que sejam facilmente reconhecidos no Repositório de Objetos.
Os seletores nos aplicativos podem representar botões, caixas de seleção, campos de texto, alternância, caixas de listagem, ou seja, qualquer tipo de elemento que possa interagir com o Robô. O elemento capturado pode ser definido no gravador Capturar Elementos.
Na lista suspensa Tipo, procure e escolha o tipo adequado para cada elemento. No Repositório de Objetos, o elemento recebe um ícone específico para seu tipo, facilitando a diferenciação entre os objetos.
Após capturar os elementos, clique no botão Salvar objetos na biblioteca e eles serão adicionados ao Repositório de Objetos. Para adicionar elementos adicionais, clique com o botão direito do mouse em uma tela ou elemento no repositório e selecione Criar Elemento. Para adicionar telas adicionais, clique com o botão direito do mouse no aplicativo e selecione Criar tela.
Se você tiver saido do gravador antes de capturar todos os elementos desejados ou se quiser adicionar ou modificar elementos usando o gravador Capturar Elementos para um aplicativo ou tela que já tiver sido adicionado ao Repositório de Objetos, você poderá iniciar o gravador a qualquer momento no contexto desse aplicativo ou tela:
-
Clique com o botão direito do mouse em qualquer aplicativo ou tela em Descritores da Interface Gráfica do Projeto e selecione Capturar Elementos. Essa ação abrirá a janela Capturar Elementos no contexto daquele aplicativo ou tela:
- Se você tiver selecionado um aplicativo, todas as telas e elementos sob esse aplicativo serão previamente preenchidos em Capturar Elementos.
- Se você tiver selecionado uma tela, todos os elementos sob essa tela serão previamente preenchidos em Capturar Elementos.
- Atualize as telas e elementos conforme necessário. É possível adicionar novas telas, começar a gravar para adicionar novos elementos, editar ou excluir telas ou elementos existentes. Se você fizer alterações em telas e elementos existentes, as alterações serão aplicadas aos descritores no Repositório de Objetos, quando você salvar.
- Clique em Salvar objetos na biblioteca para salvar as alterações, fechar o gravador e retornar ao seu projeto.
Você pode criar seu próprio repositório a partir do painel Repositório de Objetos definindo o aplicativo, cada tela e elemento manualmente.
No painel Repositório de Objetos, clique no sinal de mais na guia Descritores ou clique com o botão direito do mouse em Descritores do Projeto na mesma guia e selecione Criar Aplicativo. A janela Criar Aplicativo será aberta:
Adicione um nome de aplicativo, uma versão e uma descrição exclusivos. Clique em Criar aplicativo. Seu aplicativo ficará visível na guia Descritores, em Descritores de Interface Gráfica do Projeto.
Na guia Descritores, selecione seu aplicativo, clique no sinal de mais ou clique com o botão direito do mouse em seu aplicativo e selecione Criar Tela. A janela Adicionar Tela será aberta:
Adicione um nome exclusivo e uma descrição à tela. Indique a tela que deseja automatizar e edite o elemento capturado com o Destino Unificado:
- alterar o caminho do aplicativo, se necessário.
-
adicionar argumentos de aplicativo.
Ao terminar, clique em Criar tela.
Na guia Descritores, selecione a tela de seu app, clique no sinal de mais ou clique com o botão direito do mouse na tela, selecionando Criar Elemento. A janela Adicionar Elementos se abre:
Na seção Tipo de Descritor, clique em Indicar elemento para usar o Destino Unificado para indicar e capturar o elemento da tela.
Adicione um nome intuitivo no campo Nome do Elemento e selecione o tipo de elemento na lista suspensa em Tipo. Clique em Salvar quando estiver concluído.
- Para editar um elemento no Repositório de Objetos, clique nele com o botão direito do mouse e selecione Editar Elemento ou clique duas vezes no elemento na árvore.
- Para editar o descritor de um elemento, clique na opção Editar Descritor, na janela Editar Elemento ou clique com o botão direito do mouse no elemento na árvore e, depois, selecione Editar Descritor.
Se o Repositório de objetos estiver imposto em sua instância do Studio (de acordo com as instruções na página Sobre o Repositório de objetos), ao usar o Gravador App/Web, as atividades geradas não farão referência automática aos descritores do repositório.
No nível das atividades, uma dica de ferramenta informativa avisa você para adicionar descritores ao Repositório de Objetos ou usar os existentes.
Para fazer isso, clique no ícone dentro da atividade e siga as etapas para adicionar ou reutilizar descritores ou selecione Opções > Adicionar ao Repositório de Objetos para adicionar o elemento ao Repositório de Objetos.
Após ter criado um repositório de objetos, é possível adicionar mais elementos de interface gráfica diretamente do painel Designer.
No painel Designer, adicione uma atividade compatível com os seletores como Clique ou Digitar em. Certifique-se que a atividade adicionada esteja dentro de uma atividade Usar Aplicativo/Navegador.
No corpo da atividade, clique no ícone do Repositório de Objetos para abrir a janela Opções de Seleção. Capture o elemento, selecione Confirmar e a janela Adicionar Elemento ao Repositório de Objetos será aberta. Adicione um nome ao elemento e clique em Salvar. Observe que o elemento foi adicionado para o painel Repositório de Objetos.
Essa atualização manual é necessária para que as alterações de tempo de design sejam refletidas no sistema de controle de versão, mas ela não afeta o comportamento ou a funcionalidade do runtime, pois os fluxos de trabalho ainda usam o conteúdo do objeto atualizado. A limitação afeta apenas o controle de versões, pois algumas propriedades de atividades são incorporadas no arquivo de fluxo de trabalho e não são atualizadas automaticamente.
MyAppScreen
até o alto da atividade Use Application/Browser. O caminho do aplicativo foi adicionado automaticamente à atividade.
Alternativamente, arraste e solte um objeto no alto do sinal de mais, dentro do fluxo de trabalho. Se você arrastar e soltar uma tela, uma atividade Use Application/Browser será adicionada automaticamente. Se você arrastar e soltar um elemento, uma lista de atividades compatíveis será exibida. Selecione a atividade desejada e o objeto será adicionado automaticamente. Dentro do processo, a atividade recebe a seguinte identificação: nome da atividade + nome do objeto. Depois que o objeto for acionado, a atividade receberá as propriedades do descritor do Repositório de Objetos, visíveis no painel Propriedades da atividade.
- Para indicar ou editar o descritor da atividade, selecione Opções e, em seguida, Indicar destino na tela ou Editar destino. Uma caixa de diálogo será então exibida, informando que a ação é realizada no descritor dentro do Repositório de Objetos. Confirme sua opção, selecionando Indicar descritor e Editar descritor, respectivamente.
-
Para indicar ou editar o descritor apenas para a atividade atual, você deve primeiro remover o link entre a atividade e o Repositório de Objetos selecionando Opções e, em seguida, Desvincular do Repositório de Objetos. Observe que, quando o Repositório de Objetos for aplicado, a desvinculação removerá o destino da atividade.
Tão logo os objetos forem adicionados ao fluxo de trabalho, a guia Atividades de Interface Gráfica no painel Repositório de Objetos exibe as atividades e objetos contidos ali por ordem hierárquica. Se não estiverem visíveis, salve o projeto e verifique novamente.
Os fluxos de trabalho são marcados:
- com um ponto cinza, se pelo menos uma atividade do arquivo do fluxo de trabalho referir-se a um Decritor de Interface Gráfica do painel Objetos;
- com um ponto azul, se todas as atividades do fluxo de trabalho fizerem referência aos Descritores de Interface Gráfica do painel Objetos.
As atividades de Interface Gráfica são marcadas:
- com um ponto vazio, se a atividade não se referir a um Descritor de Interface Gráfica do painel Objetos.
- com um ponto azul, se fizer referência a um Descritor de Interface Gráfica do painel Objetos.
- Chamando elementos de interface gráfica como strings.
- usando
IElementDescriptors
a partir do Repositório de objetos.
1. Chamando elementos de interface gráfica como Strings
- Crie um aplicativo no Repositório de objetos do seu projeto chamado
MyApplication
.- Crie uma tela para o aplicativo chamado
MainScreen
. - Crie um elemento chamado
HomePageIcon
.
- Crie uma tela para o aplicativo chamado
- Crie uma variável para a tela.
- Use a Open API para abrir a tela usando o código abaixo:
var screen = uiAutomation.Open("MainScreen");
var screen = uiAutomation.Open("MainScreen");Para encontrar oObjectRepository
namespace e oDescriptors
, pressioneCTRL + space
em seu teclado. - Use a API Click no elemento de interface gráfica, usando o código abaixo:
screen.Click("HomePageIcon");
screen.Click("HomePageIcon");
2. Chamando elementos de interface gráfica como IElementDescriptors
IElementDescriptors
: ObjectRepository.Descriptors.<ApplicationName>.<ScreenName>.<UiElementName>
, onde ObjectRepository
é um namespace que integra a classe Descriptors
. A classe Descriptors
inclui ainda todos os elementos da interface gráfica que você capturou no Repositório de objetos.
Object
como o nome de seu aplicativo no Repositório de objetos.
- Crie um aplicativo no Repositório de objetos do seu projeto chamado
MyApplication
.- Crie uma tela para o aplicativo chamado
MainScreen
. - Crie um elemento chamado
HomePageIcon
.
- Crie uma tela para o aplicativo chamado
- Para melhorar a legibilidade, você pode definir seu aplicativo como uma variável aplicando uma instrução
using
no início do seu fluxo de trabalho. Aqui está um exemplo:using app = <ProjectName>.ObjectRepository.Descriptors.<AppName>
.Com essa abordagem, você pode chamar facilmente descritores no seguinte formato:app.<ScreenName>.<UiElementName>
- Crie uma variável para a tela.
- Use a Open API para abrir a tela usando o código abaixo:
var screen = uiAutomation.Open(ObjectRepository.Descriptors.MyApplication.MainScreen);
var screen = uiAutomation.Open(ObjectRepository.Descriptors.MyApplication.MainScreen);Para encontrar oObjectRepository
namespace e oDescriptors
, pressioneCTRL + space
em seu teclado. - Use a API Click no elemento de interface gráfica, usando o código abaixo:
screen.Click(ObjectRepository.Descriptors.MyApplication.MainScreen.HomePageIcon);
screen.Click(ObjectRepository.Descriptors.MyApplication.MainScreen.HomePageIcon);
- Se desejar usar elementos do repositório de objetos de um projeto de biblioteca importado, execute as seguintes etapas:
- No projeto do qual você exportou a biblioteca, crie um novo caso de teste codificado ou arquivo de fluxo de trabalho codificado.
- Atualize o pacote
UiPath.CodedWorkflows
para a versão mais recente. - No arquivo onde você deseja utilizar os elementos do repositório de objetos importados, faça referência ao projeto de onde você exportou os elementos na seção namespaces, usando o seguinte formato:
<ProjectName> = <LibraryName>.ObjectRepository.Descriptors
. - Ao usar APIs, como Click ou Open, chame os elementos de interface gráfica usando o seguinte formato:
screen.Click(<LibraryName>.ObjectRepository.Descriptors.MyApplication.MainScreen.HomePageIcon);
screen.Click(<LibraryName>.ObjectRepository.Descriptors.MyApplication.MainScreen.HomePageIcon);
Ao trabalhar com APIs de automação móvel, há dois métodos principais para acessar elementos de interface gráfica por meio do Repositório de objetos:
- Usando
IScreenDescriptors
eIElementDescriptors
a partir do namespaceObjectRepository
e da classeDescriptors
. - Usando caminhos relativos à tela no Repositório de objetos. Se você tiver mais de um aplicativo ou mais de uma tela, você deverá especificá-los na chamada do método.
1. Usando IElementDescriptors da classe Descriptors
IElementDescriptors
: ObjectRepository.Descriptors.<ApplicationName>.<ScreenName>.<UiElementName>
, onde ObjectRepository
é um namespace que integra a classe Descriptors
. A classe Descriptors
inclui ainda todos os elementos da interface gráfica que você capturou no Repositório de objetos.
Object
como o nome de seu aplicativo no Repositório de objetos.
- Crie um aplicativo no Repositório de objetos do seu projeto chamado
MyApplication
.- Crie uma tela para o aplicativo chamado
HomeScreen
. - Crie um elemento chamado
ParentElement
. - Aninhado sob o
ParentElement
, crie o elemento chamadoChildElement
.
- Crie uma tela para o aplicativo chamado
- Para melhorar a legibilidade, você pode definir seu aplicativo como uma variável aplicando uma instrução
using
no início do seu fluxo de trabalho. Aqui está um exemplo:using app = <ProjectName>.ObjectRepository.Descriptors.<AppName>
.Com essa abordagem, você pode chamar facilmente descritores no seguinte formato:app.<ScreenName>.<UiElementName>
- Crie uma conexão entre o dispositivo móvel e o aplicativo gravado no Repositório de objetos.
- Chame a API Tap na conexão, para clicar no elemento
ChildElement
, usando o código abaixo:connection.Tap(Descriptors.MyApplication.HomeScreen.ParentElement.ChildElement);
connection.Tap(Descriptors.MyApplication.HomeScreen.ParentElement.ChildElement);Para encontrar o namespaceObjectRepository
e a classeDescriptors
, pressioneCTRL + space
em seu teclado. - Use a API GetAttribute em
ParentElement
, usando o código abaixo:var isChecked = connection.GetAttribute(Descriptors.MyApplication.HomeScreen.ParentElement, Attributes.Android.CHECKED);
var isChecked = connection.GetAttribute(Descriptors.MyApplication.HomeScreen.ParentElement, Attributes.Android.CHECKED); - Se desejar usar elementos do repositório de objetos de um projeto de biblioteca importado, execute as seguintes etapas:
- No projeto do qual você exportou a biblioteca, crie um novo caso de teste codificado ou arquivo de fluxo de trabalho codificado.
- Atualize o pacote
UiPath.CodedWorkflows
para a versão mais recente. - No arquivo onde você deseja utilizar os elementos do repositório de objetos importados, faça referência ao projeto de onde você exportou os elementos na seção namespaces, usando o seguinte formato:
<ProjectName> = <LibraryName>.ObjectRepository.Descriptors
. - Ao usar APIs, chame os elementos da interface gráfica usando o seguinte formato:
connection.Tap(<LibraryName>.ObjectRepository.Descriptors.MyApplication.HomeScreen.ParentElement.ChildElement);
connection.Tap(<LibraryName>.ObjectRepository.Descriptors.MyApplication.HomeScreen.ParentElement.ChildElement);
2. Usando caminhos relativos à tela no Repositório de objetos
Strings
acessar elementos do repositório de objetos. Caminhos são representações de string da hierarquia de elementos na tela do celular. Você também pode acessar quaisquer descritores, mesmo que seus nomes estejam duplicados no repositório, pois você pode especificar o aplicativo de destino e a tela para cada elemento.
MobileTarget.FromObjectRepository
, que segue o caminho do elemento de interface gráfica, relativo à tela e ao aplicativo usados. O valor de retorno desse construtor é um ObjectRepositoryTarget
.
Há duas maneiras de especificar o caminho do elemento de interface gráfica no Repositório de objetos:
- Usando relacionamentos
Strings
organizados como pai-filho em um formato como "parentOfparent///parent//child".Por exemplo, veja o código a seguir, que toca em um elemento de destino móvel chamadoChildElement
que é filho deParentElement
, localizado na tela atual do aplicativo atual.connection.Tap(MobileTarget.FromObjectRepository("ParentElement///ChilElement"));
connection.Tap(MobileTarget.FromObjectRepository("ParentElement///ChilElement"));Veja o mesmo exemplo, mas dessa vez o código toca no mesmo elementoCheckedOnlyCheckBox
, mas agora em uma tela diferente (anotherScreen
) em um aplicativo diferente (anotherApp
).connection.Tap(MobileTarget.FromObjectRepository("ParentElement///ChildElement", "anotherApp", "anotherScreen");
connection.Tap(MobileTarget.FromObjectRepository("ParentElement///ChildElement", "anotherApp", "anotherScreen"); - Usando uma matriz de relacionamentos
Strings
organizados como pai-filho em um formato como ["parentOfParent", "parent", "child"].For example, see the following code, that taps the same UI element, but it inputs the path into separate strings arranged inside an array.connection.Tap(MobileTarget.FromObjectRepository(new string[]{"ParentElement", "ChildElement"}));
connection.Tap(MobileTarget.FromObjectRepository(new string[]{"ParentElement", "ChildElement"}));The same example can be used when you want to specify a different screen or app for the method call.connection.Tap(MobileTarget.FromObjectRepository(new string[]{"ParentElement", "ChildElement"}, "anotherApp", "anotherScreen"));
connection.Tap(MobileTarget.FromObjectRepository(new string[]{"ParentElement", "ChildElement"}, "anotherApp", "anotherScreen"));
Os descritores podem ser editados a partir do Repositório de Objetos em dois cenários, aos quais iremos referir-nos como edição "on-line" e "off-line":
- edição on-line — tanto o aplicativo quanto o navegador puderem ser acessados na máquina atual. O app/navegador será exibido na tela, permitindo que os elementos sejam novamente selecionados ou alterados.
-
edição off-line — não é possível acessar o aplicativo ou navegador na máquina atual, seja porque o app não está instalado ou porque a máquina está desligada. Os seletores de elementos ficam visíveis, o que permite fazer alterações.
Observação: tanto os Seletores quanto os Seletores Fuzzy em seus descritores podem ser editados diretamente no UIExplorer usando o botão .
Na guia Descritores, clique com o botão direito do mouse e selecione Editar Descritor. A seleção da tela se abre, o que permite capturar um elemento diferente, editar seletores e âncoras.
O mesmo pode ser feito, clicando-se no botão Editar Descritor, na janela Editar Elemento.
Os mesmos passos da edição on-line são igualmente aplicáveis neste caso. Na guia Descritores, clique com o botão direito do mouse num elemento e selecione Editar Descritor.
A edição off-line permite fazer alterações diretamente nas configurações do descritor dos elementos. Entretanto, não é possível indicar novos elementos. Para tanto, verifique se o aplicativo/navegador está aberto no estado correto.
Para editar um descritor de telas, na guia Descritores, clique com o botão direito do mouse na tela e selecione Editar descritor. A janela Editar tela é exibida.
Você pode editar o caminho do aplicativo ou a URL do navegador, os argumentos do aplicativo e o seletor de janelas, e selecionar se apenas aplicativos com um título que seja uma correspondência exata podem ser usados na automação. O caminho do aplicativo, o URL do navegador e os campos de argumentos de aplicativo suportam expressões, variáveis e argumentos.
Sempre que indicar uma tela ou Elemento de Interface Gráfica que já estiver referenciado no Repositório de Objetos, seja em Descritores de Interface Gráfica do Projeto ou nas Bibliotecas de Interface Gráfica, a correspondência será automaticamente detectada e a seguinte janela aparecerá:
As seguintes opções estão disponíveis:
- Reusar ─ adiciona o descritor correspondente do Repositório de Objetos à atividade atual.
- Criar novo ─ abre a janela de opções para criação de uma tela/elemento ou para atualizar um existente no Repositório de Objetos.
- Cancelar — mantém o seletor indicado no momento dentro da atividade, sem fazer alterações aos objetos no repositório.
A indicação de uma tela busca por um descritor de interface gráfica correspondente, ao passo que a indicação de um elemento de destino busca por um descritor de interface gráfica correspondente. Ao usar o Gravador, as ocorrências correspondentes de tela e elementos serão pesquisadas dentro da biblioteca da interface gráfica dos Descritores de Interface Gráfica do Projeto ou nas dependências importadas das Bibliotecas da Interface Gráfica.
Para aumentar seu nível de reusabilidade, é possível usar variáveis nos descritores.
É possível editar um destino, adicionar variáveis a ele e depois adicionário ao Repositório de Objetos. Alternativamente, você pode adicionar variáveis aos seletores nas telas ou elementos existentes no Repositório de Objetos. Sempre que adicionar um descritor contendo uma variável a um processo, assegure-se de criar a variável no processo, caso contrário a expressão não poderá ser lida.
Para adicionar uma variável a um seletor de descritor, clique com o botão direito do mouse no elemento dentro do Repositório de Objetos. Depois, selecione Editar Descritor e adicione a variável na janela Opções de Seleção.
<name='{{VarNumber}}'/>
adiciona o valor da variável VarNumber
ao atributo name
no seletor.
No exemplo abaixo, usamos uma variável dentro do campo URL do Navegador da atividade Use Application/Browser e, em seguida, adicionamos o destino ao Repositório de Objetos como um objeto de tela. Desta maneira, asseguramos que o descritor relate os casos em que a URL mudar.
- Criação de um Repositório através da Captura de Elementos
- Capturando todos os elementos
- Propriedades do Descritor
- Tipos de Elementos
- Usando a função Capturar Elementos para Aplicativos e Telas Existentes
- Criação de Repositório a partir do Painel Repositório de Objetos
- Criar um Aplicativo de Interface Gráfica
- Criar uma Tela
- Criar um Elemento de Interface Gráfica
- Usando o Repositório de Objetos com Gravadores
- Adicionar Elementos das Atividades a um Repositório
- Usar Objetos no Projeto Atual
- Usando objetos em automações codificadas com o UIAutomation
- Usando objeto em automações codificadas com automação móvel
- Editar Descritores
- Descritores de elementos
- Edição On-line
- Edição offline
- Descritores de telas
- Resolver Descritores de Interface Gráfica
- Variáveis nos Descritores
- Realçar Elementos