- 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
- Como gerenciar 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
- Comparação de arquivos
- Melhores Práticas de Automação
- Integração de controle de origem
- Depuração
- 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
- SR-DB-002 - Contagem alta de argumentos
- SR-DB-003 - Esvaziar bloco catechu
- SR-DB-007 - Múltiplas camadas Com fluxograma
- SR-DB-020 - Propriedades de saída indefinidas
- 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-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ção assistida baseada em gatilho
- Gravação
- Elementos de Interface Gráfica
- Fluxo de controle
- Seletores
- Repo. de Objetos
- Extração de Dados
- Automação de imagem e texto
- Automação de tecnologias Citrino
- Automação RDP
- Automação da Salesforce
- Automação SAP
- Automação do Varear Horizonte
- Geração de logs
- A ferramenta ScreenScrapeJavaSupport
- O protocolo Servodrive
- Test Suite — Studio
- Extensões
- Solução de problemas
- Sobre a solução de problemas
- 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
- Automação de aplicativos em execução com um usuário diferente do Windows
- Validation of large Windows-legacy projects takes longer than expected
Sobre seletores
Para automatizar ações específicas na interface do usuário, é necessário interagir com diversas janelas, botões, listas suspensas, entre outros. Uma das maneiras em que os elementos de interface gráfica podem ser identificados é usar sua posição na tela, mas isso pode não ser confiável.
To overcome this problem, Studio uses what we call selectors. These store the attributes of a graphical user interface element and its parents, in the shape of an XML fragment.
Na maioria das vezes, os seletores são gerados automaticamente pelo Studio e não requerem mais nenhuma entrada sua, especialmente se os aplicativos que você estiver tentando automatizar tiverem uma interface de usuário estática.
However, some software programs have changing layouts and attribute nodes with volatile values, such as some web-apps. Studio cannot predict these changes and, therefore, you might have to manually generate some selectors.
Um seletor tem a seguinte estrutura:
<node_1/><node_2/>...<node_N/>
<node_1/><node_2/>...<node_N/>
O último nó representa o elemento GUI que interessa a você e todos os anteriores representam os pais desse elemento. <node_1> geralmente é referido como um nó raiz, e representa a janela superior do aplicativo.
Cada nó contém um ou mais atributos que ajudam a identificar um nível específico do aplicativo selecionado.
Cada nó tem o seguinte formato:
<ui_system attr_name_1='attr_value_1' ... attr_name_N='attr_value_N'/>
<ui_system attr_name_1='attr_value_1' ... attr_name_N='attr_value_N'/>
Cada atributo tem um valor atribuído. É importante escolher atributos com um valor constante. Se o valor de um atributo mudar a cada vez que o aplicativo for iniciado, o seletor não conseguirá identificar corretamente o elemento.
Os seletores são exibidos no painel Propriedades de atividades, em Entrada > Destino > Seletor. Todas as atividades relacionadas aos elementos gráficos têm essa propriedade.
A janela Opções de seleção permite selecionar e editar um destino. Para acessar essa janela, no painel Designer de Fluxo de Trabalho, clique no botão Opções no corpo de uma atividade e selecione Indicar destino na tela ou Editar destino.
A janela Editor de Seletor permite que você veja o seletor gerado automaticamente, edite-o e seus atributos. Para acessar essa janela, use o botão Reticências próximo ao campo Seletor, no painel Propriedades.
Opção |
Description |
---|---|
Validar |
O botão mostra o status do seletor, verificando a validade da definição do seletor e a visibilidade do elemento de destino na tela. O botão Validar possui três estados:
O botão está correlacionado aos estados de validação do UI Explore. |
Indicar Elemento |
Indica um novo elemento da interface gráfica para substituir o anterior. |
Reparar |
Permite que você indique novamente o mesmo elemento de interface gráfica de destino e repare o seletor. Essa operação não substitui completamente o seletor anterior. O botão fica disponível apenas quando o seletor for inválido. |
Highlight |
Traz o elemento de destino para o primeiro plano. O destaque continua até que a opção seja desabilitada com um clique. O botão será habilitado apenas se o seletor for válido. |
Editar Atributos |
Contém todos os componentes da aplicação necessários para identificar a aplicação de destino (uma janela, botão, etc.). Esta seção é editável. |
Editar Seletor |
Contém o seletor real. Esta seção é editável. |
Abrir no Explorador de Interface Gráfica |
Inicia o UI Explorer. A opção fica habilitada apenas para seletores válidos. |
As seguintes tabelas apresentam a compatibilidade entre tags e atributos utilizados para criar seletores e a capacidade dos seletores:
Atributo |
Fuzzy |
RegEx |
Diferenciação de maiúsculas e minúsculas |
---|---|---|---|
app |
|
|
|
cls |
|
|
|
title |
|
|
|
aaname |
|
|
|
ctrlname (WinForms) |
|
|
|
ctrlid (WinForms) |
|
|
|
idx |
|
|
|
tid |
|
|
|
pid |
|
|
|
isremoteapp |
|
|
|
aastate |
|
|
|
sapClient (SAP) |
|
|
|
sapLanguage (SAP) |
|
|
|
sapProgram (SAP) |
|
|
|
sapScreen (SAP) |
|
|
|
sapSession (SAP) |
|
|
|
sapSysName (SAP) |
|
|
|
sapSysNumber (SAP) |
|
|
|
sapSysSessionId (SAP) |
|
|
|
sapTransaction (SAP) |
|
|
|
sapUser (SAP) |
|
|
|
Atributo |
Fuzzy |
RegEx |
Diferenciação de maiúsculas e minúsculas |
---|---|---|---|
url |
|
|
|
htmlwindowname |
|
|
|
title |
|
|
|
class |
|
|
|
app |
|
|
|
idx |
|
|
|
pid |
|
|
|
tid |
|
|
|
excludehwnd |
|
|
|
bsid (Browser Session ID) |
|
|
|
isremoteapp |
|
|
|
Os atributos tag e id usam valores de strings. Todos os outros atributos WEBCTRL têm valores dinâmicos.
Atributo |
Fuzzy |
RegEx |
Diferenciação de maiúsculas e minúsculas |
---|---|---|---|
tag |
|
|
|
idx |
|
|
|
aaname |
|
|
|
name |
|
|
|
id |
|
|
|
parentid |
|
|
|
class |
|
|
|
css-selector |
|
|
|
innertext |
|
|
|
visibleinnertext |
|
|
|
isleaf |
|
|
|
parentclass |
|
|
|
parentname |
|
|
|
src |
|
|
|
href |
|
|
|
tableCol |
|
|
|
tableRow |
|
|
|
colName |
|
|
|
rowName |
|
|
|
aria-label |
|
|
|
aria-labelledby |
|
|
|
Atributo |
Fuzzy |
RegEx |
Diferenciação de maiúsculas e minúsculas |
---|---|---|---|
Role |
|
|
|
name |
|
|
|
automationid |
|
|
|
labeledby |
|
|
|
aastate |
|
|
|
virtualname |
|
|
|
text |
|
|
|
rowName |
|
|
|
idx |
|
|
|
Atributo |
Fuzzy |
RegEx |
Diferenciação de maiúsculas e minúsculas |
---|---|---|---|
accelkey (Accelerator Key) |
|
|
|
acskey (Access Key) |
|
|
|
automationid |
|
|
|
cls |
|
|
|
helpText |
|
|
|
legacyAccHelp (Legacy Accessible Help) |
|
|
|
enabled |
|
|
|
kbfocus (Is Keyboard Focusable) |
|
|
|
ispwd (Is Password) |
|
|
|
itemstatus |
|
|
|
itemtype |
|
|
|
rtid (Runtime ID) |
|
|
|
Role |
|
|
|
name |
|
|
|
pid |
|
|
|
tableRow |
|
|
|
tableCol |
|
|
|
rowName |
|
|
|
colName |
|
|
|
idx |
|
|
|
Atributo |
Fuzzy |
RegEx |
Diferenciação de maiúsculas e minúsculas |
---|---|---|---|
Role |
|
|
|
name |
|
|
|
virtualname |
|
|
|
javastate |
|
|
|
tableRow |
|
|
|
tableCol |
|
|
|
rowName |
|
|
|
colName |
|
|
|
idx |
|
|
|
Atributo |
Fuzzy |
RegEx |
Diferenciação de maiúsculas e minúsculas |
---|---|---|---|
id |
|
|
|
leafid Esse atributo não fica exposto no painel Atributo porque é mutuamente exclusivo com o atributo id. Ele pode ser adicionado manualmente. |
|
|
|
tableRow |
|
|
|
tableCol |
|
|
|
colName |
|
|
|
relpath |
|
|
|
itemId |
|
|
|
Observe que a tag Silverlight não é compatível com os recursos Fuzzy, RegEx e Diferenciação de maiúsculas e minúsculas.