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.
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 quené um inteiro positivo, — subir a quantidade de níveis indicada. Combind: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".
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:
Abra o menu Iniciar do Windows, digite
Блокнотe inicie o aplicativo. No documento novo, digiteЗаявка 1042. Ответственный: Анна Смирнова..
Bloco de Notas: texto de um documento novo.
No menu "Файл" (Arquivo), selecione "Сохранить как..." (Salvar como) para abrir a janela de escolha do nome e formato.

Bloco de Notas, menu "Файл": comando "Сохранить как...".
Digite
Заявка 1042.txtem "Имя файла" (Nome do arquivo). Mantenha "Текстовые документы (*.txt)" em "Тип файла" eUTF-8em "Кодировка" (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.
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 "Создать".
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.
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 "Автоматизация приложений".
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.
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) —
Textpara ler o nome e o tipo do documento. O exemplo do botão usaNamepara ler seu nome. - "Результат" (Resultado), em "Выход" (Saída) — variável
$Result, que recebe o texto.

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.
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
na propriedade "Селектор" do painel de propriedades.

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
Processencontra o aplicativonotepad. O valor0em "Descendant" limita a busca aos níveis indicados.
Sherpa Designer, tabela do seletor: aplicativo notepad e valor Descendant.
A próxima linha encontra a janela pela classe
Notepade pelo nome*Блокнот.*aceita qualquer nome de documento antes do nome do aplicativo.
Sherpa Designer, tabela do seletor: janela do Bloco de Notas.
A linha com nome "Сохранение" e classe
#32770encontra a janela de salvamento aberta.
Sherpa Designer, tabela do seletor: janela "Сохранение".
A linha de classe
DUIViewWndClassNameencontra 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.
A linha "Тип файла:" de classe
CIDLabelencontra o texto ao lado da lista de formatos.
Sherpa Designer, tabela do seletor: texto "Тип файла:".
A última linha, com
ParentIndent = 1, sobe até o pai comum. A busca porAppControlHostcomeç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.
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.
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.
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.
bind:1sobe 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.
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.
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.
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é "Сохранить".
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.
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
ComboBoxe nome "Кодировка:" encontra a lista de codificações.
Sherpa Designer, tabela do seletor: lista "Кодировка".
ControlType = Textencontra o controle de texto filho chamado "Кодировка:" na árvore da lista. A subida começa nele. O valor selecionadoUTF-8não é o nome desse nó.
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.
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.
A linha de classe
Buttonencontra "Сохранить", que está após a lista.
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.
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.
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.
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.