# Salvar Vagas do SuperJob

Vamos considerar um exemplo de robô que salva automaticamente as respostas para uma vaga criada no site SuperJob. Para o funcionamento correto, é necessário entrar na conta pessoal no site através do navegador “Google Chrome”.

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_4nXfK_hzEpmRiy1wOMJ3OXyyN1NWEDEN-bM6CXe4a5_jx3ZHqPTw4UfYCrjOxtw6Ei9no2WkEE2LUnI1Nb6qthd1KruyHQtuoJBQrvJwteNIA8dznspavPDkMnYaOszjfllguQixwJw?key=FxLA9F3yW7bqYX87nSO7VZ4G" alt=""><figcaption></figcaption></figure>

<br>

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfIR--E71HTQ2w7h1YnThKGJC6alvyeLUS2axzEchq2DvwWcExJz3ALfMShIR813Pwum3mIFaolquuy8_G3SDi_3HN7Hf1ybkB8yoc5xO8cjGUVFCrkfDto-sP9O4qB8FWaXGP4Bw?key=FxLA9F3yW7bqYX87nSO7VZ4G" alt=""><figcaption></figcaption></figure>

<br>

1. **Bloco “Início”** (a partir deste bloco começa qualquer diagrama).
2. **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 ao iniciar, especificado por meio de uma variável);
* 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_4nXfEPsUf2DLganLwL3XU3fzmacRJPHRscMnh8Sja5J-EkvQeQy2oj0icjekLXTH5gLkVM01J7H2DprCqPKygywRmFDiB-zMHQ4r4483q-ZtG1q6TDeQChSvixeQIrkLBdHZITZbP?key=FxLA9F3yW7bqYX87nSO7VZ4G" alt=""><figcaption></figcaption></figure>

3. **Bloco “Obter texto”** permite obter o texto ou o valor do atributo de um elemento da página da web (título, link, campo de edição, bloco de texto, etc.). Este bloco é gravado usando 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)”. Para ele, as seguintes propriedades são especificadas:

* Seletor (identificador da janela do navegador e do elemento da página da web);
* Tipo de valor (seleção do tipo de valor a ser extraído);
* Rolagem automática (com a flag ativada, será realizada a rolagem automática até o elemento);
* ID do processo (variável que armazena o identificador do processo e da aba do navegador utilizados por este bloco. Se a propriedade for deixada em branco, ou se a variável "ID do processo" não foi atribuída anteriormente no momento da abertura do navegador, o aplicativo e a aba do navegador serão determinados a partir do conteúdo da linha correspondente do seletor.);
* Atraso antes (atraso em segundos antes da execução do bloco);
* Atraso após (atraso em segundos após a execução do bloco);
* Tempo de espera (tempo máximo de espera para o elemento especificado em segundos).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdGVvy6JnNrEvWzush1xuxL6ZnN_oRqwMN5KABaiS5Hnngb5TrkAMDgAUJkYXcqJeDU6WmobUcWXSuSUYfh89Y4fk5NpKcZV6X-QCF1faGDcymCIFp1Vle9hLy95yHaCVP5P2sg3Q?key=FxLA9F3yW7bqYX87nSO7VZ4G" alt=""><figcaption></figcaption></figure>

4. **Bloco “Condição”** verifica a condição especificada para ver se é verdadeira, após o que a execução do script continua na saída “Sim” (se a condição for atendida) ou na 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 é: $Result != "Entrada". Ou seja, a variável não é igual a “Entrada”.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdV2DsTUGFcMTi8BZAkG63LY_WSUgSVLyV3VqtkqN6awkG_Oq8zR6GFidBJ-N2ZRTLm-Xt5QQkf8_Dd_1jsSiMAdjmseXwRGKqPkkNg5uZwyCzrA4EAz-ki8AgzMBdvpIy9NuI3dg?key=FxLA9F3yW7bqYX87nSO7VZ4G" alt=""><figcaption></figcaption></figure>

5. **Bloco “Log”** permite registrar mensagens arbitrárias e/ou valores de variáveis durante a execução do script 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ô a mensagem “Clicando nas respostas” e a exibe no status.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXeuYCSWrKjo-1qCdfzexw-r3md7csh0jHNuYemMtFD9k-9cu7TpqPVomNaRGeNcejwXN7B6VCRNUCillqfyW1A7DG6PIWsU_BRhBVRS_SKdiTK36gljhwJSDeSdPaHoJNnf2Lue?key=FxLA9F3yW7bqYX87nSO7VZ4G" alt=""><figcaption></figcaption></figure>

6. e 7. **Blocos “Clique com o mouse”** realizam um clique no elemento especificado do aplicativo.
7. **Bloco “Contar elementos”** permite obter a quantidade de elementos do mesmo tipo na página da web de acordo com o seletor especificado. Este bloco é gravado usando a ferramenta “Gravação”. Para ele, 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 máximo para contar os elementos em segundos).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXf01e97QbqjNTifgfq_FZdlWYaQcQvvttDHOKukp5Fsz8KK2HWp9Kn83NEI930u1G_UmVjQOy9Ln6nhWeLuWIVo_Uv3NZMw69XrxZX-_iilllBBm9RMAEuiaX43KkjErRNTYh7fNA?key=FxLA9F3yW7bqYX87nSO7VZ4G" alt=""><figcaption></figcaption></figure>

9. **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 o número 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 script continua na saída “Laço” deste bloco (no chamado “corpo do laço”). Assim que a execução do script chegar novamente a este bloco, o valor da variável “Laço” aumentará em “Passo” (neste caso, é igual a 1), e novamente ocorrerá a transição para a 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 $CountItem), a execução do script continuará na 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_4nXeQ9xm7fmPCW02z7Qy31SFVYwxN4tCjuMEpm_4cNVOl5tv13LPN8VgxJSnoclWWDeAe0FUGHPaFilm2MAEnL1g-GwGk2FTjIBSrRI-QNxcwYmG19WlLqPHpc0XYnajEeguF6KexBg?key=FxLA9F3yW7bqYX87nSO7VZ4G" alt=""><figcaption></figcaption></figure>

Os blocos 10. - 13. são gravados usando a ferramenta “Gravação”.

14. O bloco **“Fechar aba do navegador”** permite fechar a aba especificada do navegador indicado. Para este bloco, o ID do processo é especificado (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_4nXdzjoIA64wrTYj_1ryBX5BOhEnig8zhclSQ5MV9V5UBg1p4gMn8A4O1S_CXaOnA7S7IXhiTz6NzSczKlPVJ14cikaw3tfklB_rhgNfAvnS1Mx-oszaLbzbbAfFnxxX_IkvglGfZYQ?key=FxLA9F3yW7bqYX87nSO7VZ4G" alt=""><figcaption></figcaption></figure>

15. **Bloco “Log”** permite registrar mensagens arbitrárias e/ou valores de variáveis durante a execução do script 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 a mensagem “Erro de autenticação”.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXd55HUl-vrPVUecbK3MqXmPZp-jcV9QhxPk1PgNg3TcoHGaOL1a6c-k7O7_Wd_CEKSaS3wXWyUNAo71OpJsyyumfMF7DORkjKie2M7K5ok0OYhRArb5_QsFqqH3SjyC6CngT0SC3A?key=FxLA9F3yW7bqYX87nSO7VZ4G" alt=""><figcaption></figcaption></figure>

\`\`\`markdown 16\\. \*\*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 nas buscas subsequentes, o cache é verificado primeiro. Se houver informações sobre esse seletor no cache, elas são extraídas, o que acelera significativamente o trabalho do robô. No entanto, em alguns casos, esse cache pode impactar negativamente o funcionamento 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 processamento de elementos semelhantes na página.

Os blocos 17 a 21 são gravados com a ferramenta “Gravação”. Esses blocos contêm uma série de emulações de cliques do mouse e pressionamentos de teclas do teclado.

22\. **Bloco “Condição”** verifica a condição especificada quanto à veracidade, após o que a execução do script 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 a (==)/ maior que (>)/ menor que (<) “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 – 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 – saída “Não”.

Neste caso, a condição estabelecida é: $Result. Ou seja, se apenas uma variável for especificada, ela é verificada como $true ou $false.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfQ-i1YDcxwYpLrgzRqFG4EmpIzZk1WrraPm3s4WnjoGGmEPRGNEIXQ2RAqShS2X49dQxiJdXUQG7aq2RwC8ngyuUkTkNZOJhWVQygHZAwlJpnNBTdSPNRaHrG3L7riE9ATJUoV?key=FxLA9F3yW7bqYX87nSO7VZ4G" alt=""><figcaption></figcaption></figure>

23\. **Bloco “Log”** permite registrar mensagens arbitrárias e/ou valores de variáveis no log durante a execução do script do robô. Para este bloco, a propriedade “Valor” é especificada. Entre aspas, uma constante de texto é indicada, e o nome da variável começa com o símbolo $. Ou seja, este bloco registra no log do robô a mensagem “Autenticação” e a exibe no status.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXc5CCnP2IopfotGUA8Z36YnPpVnCO2Wj-3Gnvv-8T-woH8shZs29LLR8u0K-WAT4B_Ov3MIwa_9gz3Rfqm7i6GN2RfOjtJF16pOk7DNlQwbismHx0hlvReyCul92SRIAIFFoGOt?key=FxLA9F3yW7bqYX87nSO7VZ4G" alt=""><figcaption></figcaption></figure>

24\. e 25. **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-superjob-jobs.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.
