# Salvar Currículos do HeadHunter

Vamos considerar um exemplo de robô que salva currículos do site hh.ru.

O projeto do robô consiste em um diagrama.

O diagrama do projeto é assim (para conveniência, os blocos do diagrama estão numerados):

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfoJ1G5-ad76k0LtUnBDgVzLni8eLdVUh9hWB8cbJ0HIG_eu7vVyP_qDIieOp33xO39N7rHPEHC1d1PGfl1ZUVtBZwFxFbOekwrWIAiinYWM7_FP3R4_SaZvYTlFWMpVOvtuetTbQ?key=7s1g-lT9vbX__uGNSqzDxVxY" alt=""><figcaption></figcaption></figure>

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcmitzg0qRtCXKpMrpFlK08UyZAowBWjPq2aCvXsPfcC-lHIMKH94BX9RdqmlGzA_RkY4CcxI6882rLd0porEVjSk--eV_yP7j7cpqhyT6uRNunn0lIA3LBwmfIvBbR4F3bhbpd?key=7s1g-lT9vbX__uGNSqzDxVxY" alt=""><figcaption></figcaption></figure>

1. **Bloco “Início”** (a partir deste bloco começa qualquer diagrama).
2. **Bloco “Janela de Entrada de Texto”** permite mostrar uma janela de diálogo modal, destinada a obter informações do usuário. Para este bloco, as seguintes propriedades são especificadas:

* Título (texto que será exibido no cabeçalho da janela de diálogo. Neste caso: “Sherpa RPA”);
* Mensagem (texto que será exibido dentro da janela de diálogo. Neste caso: “Digite a consulta de pesquisa:”)

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdbtGm2IcJGlLEp43uVGKz33zPscZimfZDyr1VGzbkFfxkuRCcX39d1VuNcKQMTOJ7kiLqLvy0--qTzGHWYNJHbZU1c7WrPVTJvAeHWCE-8HUpKvy2xbVjj9cRTkp8eiHQ56_5t9g?key=7s1g-lT9vbX__uGNSqzDxVxY" alt=""><figcaption></figcaption></figure>

3. **Bloco “Codificar String de URL”** permite codificar uma string para transmissão em uma URL. Para este bloco, a string de entrada é “Texto”, e a string resultante na saída é “Resultado”.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcaUmaN5lBFwM7ih1yku5l0jsz38BTB4Fb1ni1tqPFUdsr3QotR9YzaALIa-M-NSYy5gNCJhW6VIBufFuXLNXYPUd607FdC1MfvEa74XZTAjYh5fW3uW4R-xddzDUKZ_Z6F8gh7zA?key=7s1g-lT9vbX__uGNSqzDxVxY" alt=""><figcaption></figcaption></figure>

4. **Bloco “Atribuir Valor à Variável”** define novos valores para uma ou mais variáveis. Neste caso, nas propriedades, são especificados dois valores que devem ser atribuídos a duas variáveis, respectivamente.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfsYQWggFoEucCu8DxnbT3-tpGxclOxJg_1rYf5sAWvEM8gFHc8Tk56DLmEruYp48nNYk4I-xYFjg-Mfe1qaNTdPOnZD_7yPhvgNo7jOelzkDvZCfKYAcxG4BSzZBwCCEy3rWIf5Q?key=7s1g-lT9vbX__uGNSqzDxVxY" alt=""><figcaption></figcaption></figure>

5. **Bloco “Iniciar Chrome”** permite iniciar o navegador Google Chrome. Para este bloco, as seguintes propriedades são especificadas:

* URL (endereço da página a ser aberta na inicialização, especificado por meio de uma variável);
* Aba Atual (com a flag ativada, a página será aberta na aba atualmente selecionada do navegador);
* Tempo de Espera (tempo de espera para iniciar o aplicativo e carregar a aba em segundos).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcpc7wE9Wkf8pirj0_4P7GcDyNOJerB3p6FENehumDWsXbTiZvqMXd8iVt1Mj_W9XW4BWEXjNl_rJlycCpHRUJbqFXotuVT3LvXkYpDN76vrkccnps5kspY1jxcXpaNvISK8Kb-?key=7s1g-lT9vbX__uGNSqzDxVxY" alt=""><figcaption></figcaption></figure>

6. **Bloco “Contar Elementos”** permite obter a quantidade de elementos do mesmo tipo em uma página da web de acordo com um seletor especificado. Para este bloco, as seguintes propriedades são especificadas:

* Seletor (identificador da janela do navegador e do elemento da página da web, comum a todos os elementos do mesmo tipo procurados);
* ID do Processo (variável que armazena o identificador do processo e da aba do navegador utilizados por este bloco);
* Timeout (tempo limite para contar os elementos em segundos).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdkh2h4PPTz66h-QBp4QLMA4WzFVZKfZCrXK57Y-BDjLkslDnLBJMjgIzMCp4MKM-MVQj0EVLanpAvgkb-GTDvPJ1PkYBjJblp1egDj4QxsdT5Q3sjDZRBsSwv_p_L7ILBBvoPXyw?key=7s1g-lT9vbX__uGNSqzDxVxY" alt=""><figcaption></figcaption></figure>

7. **Bloco “Laço”** permite repetir uma sequência de ações (blocos) várias vezes e, ao mesmo tempo, contar o número de iterações do laço, registrando a quantidade atual em uma variável especial (especificada na propriedade “Laço”), que pode ser utilizada em outros blocos. Na primeira entrada no bloco, o valor da variável da propriedade “Laço” é igualado ao “Valor Inicial” (neste caso, é igual a 0), e então a execução do cenário continua em direção à saída “Laço” deste bloco (no chamado “corpo do laço”). Assim que a execução do cenário chegar novamente a este bloco, o valor da variável “Laço” será incrementado pelo valor do “Passo” (neste caso, é igual a 1), e novamente ocorrerá a transição em direção à saída “Laço”. Assim que o valor da variável “Laço” se tornar maior ou igual ao “Valor Final” (neste caso, é definido pela variável $Count), a execução do cenário continuará em direção à saída inferior do bloco. Não se esqueça de conectar a saída do último bloco no corpo do laço à entrada deste bloco ou de algum dos blocos anteriores.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfFhv3Cc1YZAkXrpia7Fb7VbJoIOgux1MuSEVj88XmoWfgIBol7QQ4iCMhH0DP69c_LCgZFbwpinR1mJpGQYlpdi8OCNIvtD6Z1O2ETYla8IvEXpNArLQye_8X0maw2mGOKIOxMNQ?key=7s1g-lT9vbX__uGNSqzDxVxY" alt=""><figcaption></figcaption></figure>

8. **Bloco “Log”** permite registrar mensagens e/ou valores de variáveis no log durante a execução do cenário do robô. Para este bloco, a propriedade “Valor” é especificada. Entre aspas, é indicada uma constante de texto, e o nome da variável começa com o símbolo $. Ou seja, este bloco registra no log do robô o índice da página processada.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfDYllrYy0KGOMiBvdhfTSZNyrp3slXpBT84gRlewiPa84fGFTDN8eO-BDgoQxnFAe0aLtX_X3sHBp8pnS3r_gZCBeCun1SsKMeGKPHoWXIf1CQ6PmJWPVDo6SESxALwrwfEPC2Bg?key=7s1g-lT9vbX__uGNSqzDxVxY" alt=""><figcaption></figcaption></figure>

9. **Bloco “Atribuir Valor à Variável”** define novos valores para uma ou mais variáveis. Neste caso, nas propriedades, é especificado um valor que deve ser atribuído a uma variável, respectivamente.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXclCcT0pnune75OeDM_Wl0C-QJ58LuN-7AiuVPzKK2EMvQKl7GjoDwQE-u1k51weNT_Zrsqu46BfjmfjxSjY6Zt84XBCQchmHh5VujWCIgdqKqrSiDjT3ZXDfXTeKbKUolvbD0sCg?key=7s1g-lT9vbX__uGNSqzDxVxY" alt=""><figcaption></figcaption></figure>

10. **Bloco “Condição”** verifica a condição especificada para ver se é verdadeira, após o que a execução do cenário continua em direção à saída “Sim” (se a condição for atendida) ou em direção à saída “Não” (se a condição não for atendida).

A condição é escrita no formato: “variável” é igual (==)/ maior (>)/ menor (<) “valor”.

Por exemplo: $a == “Olá”, ou seja, se o valor da variável $a for igual a “Olá”, então a saída é “Sim”, caso contrário – a saída é “Não”.

$Result > 5, ou seja, se o valor da variável $Result for menor que 5, então a saída é “Sim”, caso contrário – a saída é “Não”.

Neste caso, a condição estabelecida é: $countpage==0. Ou seja, a variável que indica o número da página é igual a zero.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXetXQ5Ob-M9lCp3HzRjNeVaILutpQ2z-9RxTabW6PsktJbNUpYeedb-rnB7wT1wEau1rwuy2a_JwUI_MZ4nldWnnFwirxBC6-N2lHWbxNN5qbKaEyzg0H4utpLOmExBYHSZe6Hp?key=7s1g-lT9vbX__uGNSqzDxVxY" alt=""><figcaption></figcaption></figure>

11. **Bloco “Atribuir Valor à Variável”** define novos valores para uma ou mais variáveis. Neste caso, nas propriedades, são especificados dois valores que devem ser atribuídos a duas variáveis, respectivamente.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXedGqCnIfQwyLFfqJdtlhv32SqeQBt8rvY0qe2TMnORJEEPYaat-NG-xdXUe5wzOlEw4xgVYP7FjpuSGwR5bxEdN4RZfqYAE2AilU139DU3BeFLIAfCvYN56zA404a5J4acbnFR5Q?key=7s1g-lT9vbX__uGNSqzDxVxY" alt=""><figcaption></figcaption></figure>

\--- title: "Blocos de Ação" description: "Descrição dos blocos de ação no Sherpa RPA." ---

Blocos 12. - 18. parcialmente gravados com a ferramenta “[Gravação](https://docs.sherparpa.ru/pt/sherpa-rpa/sherpa-designer/rabota-v-sherpa-designer/osnovnoe-menyu/panel-razrabotka/menyu-zapis/zapis-deistvii-polzovatelya)”. Esses blocos contêm uma série de emulações de cliques e pressionamentos de teclas, cujo resultado será a salvaguarda de todo o resumo em um arquivo no formato html.

19\. **Bloco “Condição”** verifica a veracidade da condição especificada, após o que a execução do script continua na direção da saída “Sim” (se a condição for atendida) ou na direção da saída “Não” (se a condição não for atendida).

A condição é escrita no formato: “variável” igual a (==)/ maior que (>)/ menor que (<) “valor”.

Por exemplo: $a == “Olá”, ou seja, se o valor da variável $a for igual a “Olá”, a saída é “Sim”, caso contrário – a saída é “Não”.

$Result > 5, ou seja, se o valor da variável $Result for menor que 5, a saída é “Sim”, caso contrário – a saída é “Não”.

Neste caso, a condição estabelecida é: $origfilename != "". Ou seja, a variável não está vazia.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXf7ukTWXAoddcAAuebmjNypBnrUzPXMyeTlPwhlqNOC7OFcbcpmvIosHxjtofAbQjtH9x3hGrhFYyrtqIkQwV9aZBA3MtOztQ1I24nUq1hG3xNBHjsgkbz-InwfGJBHDM4Oe7hbIA?key=7s1g-lT9vbX__uGNSqzDxVxY" alt=""><figcaption></figcaption></figure>

20\. **Bloco “Atribuir valor à variável”** estabelece novos valores para uma ou mais variáveis. Neste caso, nas propriedades, é especificado um valor que deve ser atribuído a uma variável, respectivamente.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfu-Uop1smQc92dvX4Y1VkbLf41zLmFS9bi26xFO7F_oJJ6vrzcE85OhCHFWlxDNve5DnNggOnKLVOnvJuU_AQTzagYRhRONVAyNC-9tHrw9BO3KEbz5nVjckdkcRg32mk6dkmEdQ?key=7s1g-lT9vbX__uGNSqzDxVxY" alt=""><figcaption></figcaption></figure>

21\. **Bloco “Número aleatório”** gera um número aleatório com parâmetros especificados. Para este bloco, as seguintes propriedades são indicadas:

* Valor mínimo (o número aleatório não será menor que este valor);
* Valor máximo (o número aleatório não será maior que este valor);
* Passo (passo do número aleatório).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdLC_EMHo4KJN-JNCDKuDF8OZx5qeHM2P3rlYJbZUDGg_3LK3pJ7GZll92mZiskUP9Mr6z9zasXtlTmdSd6ET7E2BQzkuu8aIoG15iW6KKUJXmF3qpbRmMusAuufcbDZfYJEynEqw?key=7s1g-lT9vbX__uGNSqzDxVxY" alt=""><figcaption></figcaption></figure>

22\. **Bloco “Renomear arquivo/pasta”** permite atribuir um novo nome ao arquivo ou pasta especificados. Neste caso, ao arquivo. Para este bloco, as seguintes propriedades são indicadas:

* Caminho (caminho para o arquivo cujo nome deve ser alterado);
* Sufixo (sufixo que será adicionado ao nome do arquivo);
* Temporário (com a flag ativada, a renomeação do arquivo será realizada apenas durante a execução do programa, sem alterações no sistema de arquivos).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXd-u4fxlj4bmdToFp91PTWgZeobF54kMCJgqfaE7C_G79Yd3hPT_balbozK7hpKzP_9-ZbUJ-rXkWZv-tmPalH1r3T-prWJzsbRCe-RMVyzUgjB9ZWrbweL-QriaLOvM7UM1Vu9Nw?key=7s1g-lT9vbX__uGNSqzDxVxY" alt=""><figcaption></figcaption></figure>

23\. **Bloco “Atribuir valor à variável”** estabelece novos valores para uma ou mais variáveis. Neste caso, nas propriedades, é especificado um valor que deve ser atribuído a uma variável, respectivamente.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfWLfVnAHJCl7nxl1W6F0zSaCGD3H9EOnjSlgpjL2tAN2hjEDcqpWqdqKnY4IPkbqk5N8aCD1G6L11nEgOmUmNEQ48YMElhKJeLZbceWM5T0OFw3XyL7swkVFVhOVGtATs7woKEcw?key=7s1g-lT9vbX__uGNSqzDxVxY" alt=""><figcaption></figcaption></figure>

Os blocos 24. – 25. contêm uma série de emulações de pressionamentos de teclas, cujo resultado será a entrada do nome do arquivo na janela de salvamento do Google Chrome.

26\. **Bloco “Clique do mouse”** foi gravado com a ferramenta “Gravação”. Este bloco emula um clique do mouse, cujo resultado será a transição para a próxima página.

27\. **Bloco “Limpar cache de seletores”** permite limpar o cache interno de seletores. Ao usar seletores para acelerar a busca de elementos na página, um cache interno é utilizado. Informações sobre o elemento são armazenadas no cache após sua identificação bem-sucedida, e posteriormente, ao buscar o elemento, o cache é verificado primeiro. Se houver informações sobre este seletor no cache, elas são extraídas dele, o que acelera significativamente o trabalho do robô. No entanto, em alguns casos, esse cache pode impactar negativamente a execução do script. Isso é frequentemente observado ao processar ciclicamente elementos semelhantes em uma única página, como resultados de busca. Nesses casos, recomendamos limpar o cache ao iniciar cada iteração de varredura de elementos semelhantes na página.

28\. **Bloco “Fechar aba do navegador”** permite fechar a aba especificada do navegador indicado. Para este bloco, é indicado o ID do processo (variável que armazena o identificador do processo e da aba do navegador utilizados por este bloco).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXf_RUtD_XltvrsttIUQyokm_BQC6KNQr3TT-4u-ruqHxQoURsBTd7g4HNi4K6J6ICfS39vH1uJtPM4nxPZ6Z3JJatRY0c22lLX3KnMFmr-8v-2iaF0f-eZ6rZzm3ZUlCPWuXk-QFQ?key=7s1g-lT9vbX__uGNSqzDxVxY" alt=""><figcaption></figcaption></figure>

29\. **Bloco “Pausa”** suspende a execução do script por um tempo determinado. Para este bloco, as seguintes propriedades são indicadas:

* Unidade de medida (unidade de medida na qual a duração da pausa é especificada);
* Duração (valor do intervalo de tempo nas unidades de medida especificadas);
* Iniciar imediatamente (a flag ativada aplica a pausa imediatamente na primeira passagem deste bloco desde o início do script do robô).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcEZqql1OVckfJAqO3HLIW1oin15rxToZi9ieW7Ek3_QtsPVzHySdxMhNlya9EeRrDAbtllH9GnogajyMk1rmtGVL_Be8kjYYfltowq2UpiKFbdMf4dyrLxnAKDA-Ylxrx8xPV-0Q?key=7s1g-lT9vbX__uGNSqzDxVxY" alt=""><figcaption></figcaption></figure>

30\. **Bloco “Fim”** (este bloco encerra a execução do script ou retorna o diagrama do subprocesso ao processo principal).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.sherparpa.ru/pt/sherpa-rpa/sherpa-designer/primery-robotov/save-headhunter-resumes.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
