O modificador bind em ParentIndent#

A definição de seletor e a estrutura de suas linhas estão em Configuração de seletores.

O modificador bind: ajuda a localizar um controle após um texto ou contêiner anterior. O rótulo de um controle é o texto ao lado dele. Por exemplo, a lista de formatos na janela de salvamento do Bloco de Notas tem o rótulo "Тип файла:" (Tipo de arquivo).

Cada linha do seletor continua a busca a partir do controle encontrado pela linha anterior. A coluna "ParentIndent" faz a busca subir na árvore da interface até um elemento pai. O prefixo bind: continua a busca após o ramo de onde a subida começou.

O diagrama identifica o pai comum pelo nome da classe, PreviewBackground. O ponto inicial é "Тип файла:". A seta ↑ 1 leva ao pai comum e a próxima seta leva à lista após o rótulo.

Diagrama da árvore da janela "Сохранение": subida de um nível a partir de "Тип файла:" e busca da lista seguinte.

Diagrama da árvore da janela "Сохранение": subida de um nível a partir de "Тип файла:" e busca da lista seguinte.

O número indica quantos níveis subir:

  • 1 — subir um nível sem vinculação. A busca começa pelo primeiro elemento filho correspondente.
  • bind:1 — subir um nível e continuar após o controle inicial.
  • bind:2 — subir dois níveis e continuar após o ramo pai do controle inicial.
  • bind:n, em que n é um inteiro positivo, — subir a quantidade de níveis indicada. Com bind:3, a busca continua após o ramo no nível do terceiro ancestral. Escolha o número de acordo com a árvore real da interface.

Uma célula vazia em "ParentIndent" não faz a busca subir. A captura destaca o cabeçalho da coluna e a célula vazia da primeira linha do seletor.

Sherpa Designer, tabela do seletor: célula vazia na coluna "ParentIndent".

Sherpa Designer, tabela do seletor: célula vazia na coluna "ParentIndent".

A vinculação ao próximo ramo requer um número positivo após bind:. Os valores bind:, bind:0 e bind:-1 não especificam uma quantidade positiva de níveis. Use letras latinas minúsculas, sem espaços antes do número.

Abertura da janela de salvamento do Bloco de Notas#

Para verificar os seletores, prepare a janela de salvamento do Bloco de Notas padrão. O projeto e o documento são criados no computador. Não é necessário baixar arquivos.

As instruções usam o Bloco de Notas clássico do Windows 10 com a interface em russo. Considere o seguinte:

  • Outras versões podem ter uma árvore diferente. Grave o seletor novamente e confira os níveis de subida.
  • Outro idioma da interface altera os nomes dos controles. Substitua esses nomes nas linhas do seletor.
  • A verificação requer uma única janela aberta do Bloco de Notas. Se houver várias, o seletor poderá escolher outra.

Execute Sherpa Designer e o Bloco de Notas com o mesmo usuário e permissões padrão.

Prepare o documento da seguinte forma:

  1. Abra o menu Iniciar do Windows, digite Блокнот e inicie o aplicativo. No documento novo, digite Заявка 1042. Ответственный: Анна Смирнова..

    Bloco de Notas: texto de um documento novo.

    Bloco de Notas: texto de um documento novo.

  2. No menu "Файл" (Arquivo), selecione "Сохранить как..." (Salvar como) para abrir a janela de escolha do nome e formato.

    Bloco de Notas, menu "Файл": comando "Сохранить как...".

    Bloco de Notas, menu "Файл": comando "Сохранить как...".

  3. Digite Заявка 1042.txt em "Имя файла" (Nome do arquivo). Mantenha "Текстовые документы (*.txt)" em "Тип файла" e UTF-8 em "Кодировка" (Codificação). A pasta de destino não faz parte do seletor.

Exemplo: a janela "Сохранение" está preparada para o documento "Заявка 1042.txt", em formato TXT e com codificação UTF-8. A captura usa a pasta "Отчеты". Deixe a janela aberta durante a verificação. Não clique em "Сохранить" (Salvar): o diagrama apenas lê o texto dos controles.

Bloco de Notas, janela "Сохранение": nome do documento e tipo de arquivo selecionado.

Bloco de Notas, janela "Сохранение": nome do documento e tipo de arquivo selecionado.

Criação de um projeto no Sherpa Designer#

Para verificar a busca, crie um projeto vazio para montar o diagrama de leitura de texto.

Na guia "Разработка" (Desenvolvimento), grupo "Файл", expanda a lista sob "Создать" (Criar) e selecione "Новый проект" (Novo projeto).

Sherpa Designer, guia "Разработка": "Новый проект" na lista de "Создать".

Sherpa Designer, guia "Разработка": "Новый проект" na lista de "Создать".

Exemplo: em "Создать новый проект" (Criar um novo projeto), informe "Селекторы Блокнота" em "Имя проекта" (Nome do projeto). Em "Расположение" (Local), escolha uma pasta do computador para o projeto de aprendizado. Mantenha a caixa "Создать каталог с названием проекта" marcada e selecione o botão de opção "Пустого проекта". Clique em "Создать".

Sherpa Designer, janela "Создать новый проект": nome e seleção de projeto vazio.

Sherpa Designer, janela "Создать новый проект": nome e seleção de projeto vazio.

O diagrama "Главная" (Principal) é aberto com o bloco "Старт" (Início). O projeto criado é salvo na pasta escolhida como Селекторы Блокнота.sherpa.

Configuração do diagrama de leitura de texto#

Para exibir o valor encontrado no painel de log, adicione blocos que leiam o texto e registrem o resultado.

Na guia "Блоки" (Blocos), digite "Получить текст" no campo de busca. Arraste o bloco do grupo "Автоматизация приложений" (Automação de aplicativos) para o diagrama, abaixo de "Старт". O bloco de mesmo nome em "Автоматизация браузеров" (Automação de navegadores) não é usado com o Bloco de Notas.

Sherpa Designer, guia "Блоки": "Получить текст" no grupo "Автоматизация приложений".

Sherpa Designer, guia "Блоки": "Получить текст" no grupo "Автоматизация приложений".

Use a busca para adicionar "Лог" (Log) e "Конец" (Fim) de "Основные блоки" (Blocos principais). Conecte os blocos nesta ordem: "Старт" → "Получить текст" → "Лог" → "Конец". Para conectar dois blocos, arraste a saída inferior de um até a entrada superior do próximo.

Sherpa Designer, diagrama "Главная": sequência de leitura e exibição do resultado.

Sherpa Designer, diagrama "Главная": sequência de leitura e exibição do resultado.

Use as seguintes propriedades de "Получить текст":

  • "Селектор" (Seletor) — caminho até o controle do Bloco de Notas. Sua configuração está em Busca da lista de tipos de arquivo sem vinculação.
  • "Тип значения" (Tipo de valor) — Text para ler o nome e o tipo do documento. O exemplo do botão usa Name para ler seu nome.
  • "Результат" (Resultado), em "Выход" (Saída) — variável $Result, que recebe o texto.

Sherpa Designer, propriedades de "Получить текст": variável da propriedade "Результат".

Sherpa Designer, propriedades de "Получить текст": variável da propriedade "Результат".

Mantenha as demais propriedades nos valores padrão. Em particular, não atribua $ProcessID em "ID процесса" antes da execução: o aplicativo é identificado pelo seletor. Os demais parâmetros estão na referência do bloco Obter texto.

Exemplo: selecione "Лог" e informe $Result em "Значение" (Valor). O bloco exibirá o texto lido pela ação anterior. O envio para o Orchestrator e a criação de capturas de tela não são usados nesta verificação.

Sherpa Designer, propriedades de "Лог": exibição da variável $Result.

Sherpa Designer, propriedades de "Лог": exibição da variável $Result.

Busca da lista de tipos de arquivo sem vinculação#

Para identificar o formato do documento, é necessária a lista "Тип файла". O campo "Имя файла" define o nome e não fornece o formato. Ambos os controles têm a classe AppControlHost, portanto o nome da classe não basta.

Para abrir o editor, selecione "Получить текст" e clique no botão Abrir o editor de seletores na propriedade "Селектор" do painel de propriedades.

Sherpa Designer, propriedades de "Получить текст": botão de abertura do seletor.

Sherpa Designer, propriedades de "Получить текст": botão de abertura do seletor.

Para preencher as linhas sem digitar cada célula, copie todo o XML a seguir e clique em "Вставить из буфера обмена" (Colar da área de transferência) na janela "Селектор - Редактировать селектор":

<Selector>
  <Process Name="notepad" Descendant="0" />
  <UIElement Name="*Блокнот" ClassName="Notepad" />
  <UIElement Name="Сохранение" ClassName="#32770" />
  <UIElement ClassName="DUIViewWndClassName" />
  <UIElement Name="Тип файла:" ClassName="CIDLabel" />
  <UIElement ClassName="AppControlHost" ParentIndent="1" />
</Selector>

A busca percorre as linhas do seletor:

  • A linha Process encontra o aplicativo notepad. O valor 0 em "Descendant" limita a busca aos níveis indicados.

    Sherpa Designer, tabela do seletor: aplicativo notepad e valor Descendant.

    Sherpa Designer, tabela do seletor: aplicativo notepad e valor Descendant.

  • A próxima linha encontra a janela pela classe Notepad e pelo nome *Блокнот. * aceita qualquer nome de documento antes do nome do aplicativo.

    Sherpa Designer, tabela do seletor: janela do Bloco de Notas.

    Sherpa Designer, tabela do seletor: janela do Bloco de Notas.

  • A linha com nome "Сохранение" e classe #32770 encontra a janela de salvamento aberta.

    Sherpa Designer, tabela do seletor: janela "Сохранение".

    Sherpa Designer, tabela do seletor: janela "Сохранение".

  • A linha de classe DUIViewWndClassName encontra a área de conteúdo com o nome e o tipo de arquivo.

    Sherpa Designer, tabela do seletor: área de conteúdo da janela de salvamento.

    Sherpa Designer, tabela do seletor: área de conteúdo da janela de salvamento.

  • A linha "Тип файла:" de classe CIDLabel encontra o texto ao lado da lista de formatos.

    Sherpa Designer, tabela do seletor: texto "Тип файла:".

    Sherpa Designer, tabela do seletor: texto "Тип файла:".

  • A última linha, com ParentIndent = 1, sobe até o pai comum. A busca por AppControlHost começa pelo primeiro controle correspondente e encontra "Имя файла", que está antes da lista de formatos.

    Sherpa Designer, tabela do seletor: busca de AppControlHost sem vinculação.

    Sherpa Designer, tabela do seletor: busca de AppControlHost sem vinculação.

Deixe "Index" vazio. Mantenha as demais células não preenchidas vazias.

Exemplo: clique em "Проверить" (Verificar). A marca verde confirma que um controle foi encontrado, mas não que ele atende à tarefa. Neste caso, o seletor encontra "Имя файла" em vez de "Тип файла".

Sherpa Designer, janela "Селектор - Редактировать селектор": verificação de ParentIndent = 1.

Sherpa Designer, janela "Селектор - Редактировать селектор": verificação de ParentIndent = 1.

Para conferir o texto lido, clique em "OK", depois em "Сохранить" no grupo "Файл" e pressione F5. O diagrama "Главная" é executado no Sherpa Designer. O painel "Лог" exibe "Заявка 1042.txt": o nome do documento em vez do formato.

Sherpa Designer, painel "Лог": nome do arquivo com ParentIndent = 1.

Sherpa Designer, painel "Лог": nome do arquivo com ParentIndent = 1.

Busca da lista de tipos de arquivo com bind:1#

Para ler o formato, continue a busca após "Тип файла:", ignorando o campo de nome anterior.

No editor, altere apenas a última linha: substitua 1 por bind:1 em "ParentIndent". Preserve as demais linhas e deixe "Index" vazio.

A busca vinculada segue estas etapas:

  • O controle inicial é "Тип файла:", encontrado pela linha de classe CIDLabel.

    Bloco de Notas, janela "Сохранение": texto "Тип файла:" antes da lista de formatos.

    Bloco de Notas, janela "Сохранение": texto "Тип файла:" antes da lista de formatos.

  • bind:1 sobe um nível até o pai comum do texto e da lista. A vinculação mantém a posição do texto inicial e continua depois dele.

    Sherpa Designer, detalhe do editor do seletor: bind:1 na última linha.

    Sherpa Designer, detalhe do editor do seletor: bind:1 na última linha.

  • Após o texto está a lista "Тип файла", de classe AppControlHost. Ela substitui o campo de nome como resultado da busca.

    Bloco de Notas, janela "Сохранение": lista "Тип файла" encontrada.

    Bloco de Notas, janela "Сохранение": lista "Тип файла" encontrada.

Exemplo: clique em "Проверить" e depois em "Подсветить" (Realçar) e confirme que a lista de formatos é destacada. Para ler seu valor, clique em "OK", salve o diagrama e pressione F5. Com o tipo Text, o painel "Лог" exibe "Текстовые документы (*.txt)".

Sherpa Designer, painel "Лог": tipo de arquivo com bind:1.

Sherpa Designer, painel "Лог": tipo de arquivo com bind:1.

Sem bind:, as mesmas condições retornam o nome do documento, como mostra Busca da lista de tipos de arquivo sem vinculação.

Busca do botão Salvar com bind:2#

Para verificar o controle que conclui o salvamento do documento, encontre "Сохранить". O ponto inicial é um controle de texto dentro de "Кодировка". Dois níveis da árvore separam esse texto do pai comum com o botão.

Diagrama da árvore da janela "Сохранение": subida de dois níveis a partir do texto de "Кодировка" até "Сохранить".

Diagrama da árvore da janela "Сохранение": subida de dois níveis a partir do texto de "Кодировка" até "Сохранить".

Mantenha as três primeiras linhas: aplicativo, janela do Bloco de Notas e janela "Сохранение". Substitua as três linhas a partir de DUIViewWndClassName pelas linhas que encontram a lista de codificações, seu texto filho e o botão.

A linha ComboBox encontra a lista diretamente na janela de salvamento. Text define o controle filho inicial e a última linha leva a busca para fora da lista, até o botão. Manter as linhas anteriores continuaria a busca por "Тип файла", não pelo botão Salvar.

O seletor modificado completo é:

<Selector>
  <Process Name="notepad" Descendant="0" />
  <UIElement Name="*Блокнот" ClassName="Notepad" />
  <UIElement Name="Сохранение" ClassName="#32770" />
  <UIElement Name="Кодировка:" ClassName="ComboBox" />
  <UIElement ControlType="Text" />
  <UIElement ClassName="Button" ParentIndent="bind:2" />
</Selector>

Cole todo o XML com "Вставить из буфера обмена" e clique em "Проверить". Não preencha as células vazias, inclusive "Index". O seletor com bind:2 encontra o botão corretamente.

Sherpa Designer, detalhe do editor do seletor: verificação bem-sucedida do botão com bind:2.

Sherpa Designer, detalhe do editor do seletor: verificação bem-sucedida do botão com bind:2.

Abra a árvore do controle encontrado com "Открыть в Sherpa Explorer" no editor. Para ver os filhos, clique duas vezes no segundo nó "Кодировка:" em "Сохранение". Esse nó tem a classe ComboBox. A busca segue estas etapas:

  • A linha de classe ComboBox e nome "Кодировка:" encontra a lista de codificações.

    Sherpa Designer, tabela do seletor: lista "Кодировка".

    Sherpa Designer, tabela do seletor: lista "Кодировка".

  • ControlType = Text encontra o controle de texto filho chamado "Кодировка:" na árvore da lista. A subida começa nele. O valor selecionado UTF-8 não é o nome desse nó.

    Sherpa Explorer, fragmento da árvore da janela de salvamento: texto filho "Кодировка:".

    Sherpa Explorer, fragmento da árvore da janela de salvamento: texto filho "Кодировка:".

  • A primeira subida leva do texto filho à lista "Кодировка". O botão "Сохранить" ainda não está nesse nível.

    Sherpa Explorer, fragmento da árvore da janela de salvamento: "Кодировка:" após subir um nível.

    Sherpa Explorer, fragmento da árvore da janela de salvamento: "Кодировка:" após subir um nível.

  • A segunda subida leva a "Сохранение", pai comum da lista e do botão. A vinculação continua a busca após o ramo da lista de codificações.

    Sherpa Explorer, fragmento da árvore: "Сохранение" após subir dois níveis.

    Sherpa Explorer, fragmento da árvore: "Сохранение" após subir dois níveis.

  • A linha de classe Button encontra "Сохранить", que está após a lista.

    Bloco de Notas, janela "Сохранение": botão "Сохранить" encontrado.

    Bloco de Notas, janela "Сохранение": botão "Сохранить" encontrado.

Depois de visualizar a árvore, feche Sherpa Explorer com Alt+F4 e volte ao editor. Substituir bind:2 por bind:1 mantém a busca dentro de "Кодировка". A verificação não encontra um botão de classe Button, portanto um nível não basta.

Sherpa Designer, detalhe do editor do seletor: falha na verificação do botão com bind:1.

Sherpa Designer, detalhe do editor do seletor: falha na verificação do botão com bind:1.

Para ler o nome do botão, restaure bind:2 e clique em "Проверить", "Подсветить" e "OK". Nas propriedades de "Получить текст", selecione Name em "Тип значения". O valor Text usado para os campos do documento não retorna o nome desse botão.

Sherpa Designer, propriedades de "Получить текст": tipo Name para o nome do botão.

Sherpa Designer, propriedades de "Получить текст": tipo Name para o nome do botão.

Exemplo: salve o diagrama e pressione F5. O painel "Лог" exibe "Сохранить". O botão é encontrado, mas não é acionado. O documento permanece na janela de salvamento aberta.

Sherpa Designer, painel "Лог": nome do botão com bind:2.

Sherpa Designer, painel "Лог": nome do botão com bind:2.

A vinculação não garante uma busca correta após qualquer alteração da interface. Se a ordem dos controles ou a quantidade de contêineres aninhados mudar, verifique o seletor novamente com "Проверить" e "Подсветить". Escolha os níveis pela árvore, não pela distância entre os campos na tela.