Whatsapp#

Vamos considerar um exemplo de robô que permite realizar o envio automático de mensagens pelo Whatsapp.

O projeto do robô consiste em três diagramas e dois arquivos nos formatos xlsx e txt.

O diagrama principal do projeto é chamado “WhatsappSend” e se parece com isso (para facilitar, os blocos do diagrama estão numerados):


  1. Bloco “Início” (a partir deste bloco começa qualquer diagrama).
  2. Bloco “Processo” permite criar cenários compostos por vários diagramas. A execução do cenário continuará a partir do bloco “Início” do diagrama especificado do projeto. A execução do cenário retornará ao bloco atual e continuará no diagrama atual assim que o bloco “Fim” do diagrama externo for alcançado. Para o bloco “Processo” foi especificada a propriedade “Nome do diagrama” (nome do arquivo do diagrama onde a execução do cenário continuará).
  1. Bloco “Condição” verifica a condição especificada quanto à veracidade, após a qual a execução do cenário 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 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 – 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 é: $ComeçarTrabalho. Ou seja, se a variável $ComeçarTrabalho (que é uma variável booleana) for igual a $true, então seguimos para baixo.

  1. Bloco “Iniciar Chrome” permite iniciar o Google Chrome. Para este bloco, foram especificadas as seguintes propriedades:
  • URL (endereço da página que será aberta ao iniciar o Google Chrome);
  • 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).
  1. Bloco “Aguardar aparecimento” aguarda o aparecimento de um elemento da interface do usuário na tela, adicionado ao diagrama com a ajuda da ferramenta de gravação de ações do usuário.
  2. Bloco “Log” permite registrar mensagens e/ou valores de variáveis durante a execução do cenário do robô. Para este bloco, foi especificada a propriedade “Valor”. Entre aspas, é indicada uma constante de texto, e o nome da variável começa com o símbolo $. Ou seja, registra no log a mensagem “Erro de conexão. O telefone pode estar fora de alcance…”.
  1. Bloco “Atribuir valor à variável” estabelece novos valores para uma ou mais variáveis. Neste caso, nas propriedades foram especificados dois valores que devem ser atribuídos a duas variáveis, respectivamente.
  1. Bloco “Abrir documento” permite abrir um documento do Excel. Para este bloco, foi especificada a propriedade “Caminho para o arquivo” (caminho para o documento do Excel que deve ser aberto).
  1. Bloco “Atribuir valor à variável” estabelece novos valores para uma ou mais variáveis. Neste caso, nas propriedades foi especificado um valor que deve ser atribuído a uma variável, respectivamente.
  1. Bloco “Obter valor da célula” permite ler o valor de uma célula do documento do Excel. Para este bloco, foram especificadas as seguintes propriedades:
  • Referência ao documento (referência ao documento com o qual está sendo trabalhado no momento);
  • Planilha (número da planilha onde está localizada a célula desejada, a numeração começa em 1);
  • Linha (número da linha onde está localizada a célula desejada, a numeração começa em 1);
  • Coluna (número da coluna onde está localizada a célula desejada, a numeração começa em 1).
  1. Bloco “Obter valor da célula” permite ler o valor de uma célula do documento do Excel. Para este bloco, foram especificadas as seguintes propriedades:
  • Referência ao documento (referência ao documento com o qual está sendo trabalhado no momento);
  • Planilha (número da planilha onde está localizada a célula desejada, a numeração começa em 1);
  • Linha (número da linha onde está localizada a célula desejada, a numeração começa em 1);
  • Coluna (número da coluna onde está localizada a célula desejada, a numeração começa em 1).
  1. Bloco “Condição” verifica a condição especificada quanto à veracidade, após a qual a execução do cenário 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 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 – 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 é: $ValuePhone.Trim().Length==0. Ou seja, o comprimento da string é igual a 0.

  1. Bloco “Condição” verifica a condição especificada quanto à veracidade, 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 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 é: $ValueFIO.Trim().Length==0. Ou seja, o comprimento da string é igual a 0.

  1. Bloco “Atribuir valor à variável” estabelece novos valores para uma ou mais variáveis. Neste caso, nas propriedades, é indicado um valor que deve ser atribuído a uma variável, respectivamente.
  1. Bloco “Condição” verifica a condição especificada quanto à veracidade, 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 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 é: $countempty>5. Ou seja, o número de mensagens vazias deve ser maior que cinco.

  1. Bloco “Salvar documento” permite salvar um documento Excel. Para este bloco, são especificadas as seguintes propriedades:
  • Link para o Excel (link para o processo de manipulação do documento Excel. O nome da variável nesta propriedade deve coincidir com o nome da variável na propriedade "Link para o Excel", dos blocos "Criar documento" ou "Abrir documento" do grupo Excel, que foram usados anteriormente para criar ou abrir este documento);
  • Link para o documento (link para o documento que deve ser salvo. O nome da variável nesta propriedade deve coincidir com o nome da variável na propriedade "Link para o documento", dos blocos "Criar documento" ou "Abrir documento" do grupo Excel, que foram usados anteriormente para criar ou abrir este documento);
  • Caminho para o arquivo (caminho para o documento Excel).

Nota: para salvar o documento no mesmo arquivo, deixe o valor vazio. Caso contrário, insira um novo caminho para o arquivo. Se o arquivo especificado existir, ele será sobrescrito. Formatos disponíveis: ".xlsx", ".xlsm", ".xls", ".csv", ".pdf", ".xml"

  1. Bloco “Atribuir valor à variável” estabelece novos valores para uma ou mais variáveis. Neste caso, nas propriedades, são indicados dois valores que devem ser atribuídos a duas variáveis, respectivamente.
22. **Bloco “Processo”** permite criar cenários compostos por vários diagramas. A execução do cenário continuará a partir do bloco “Início” do diagrama especificado do projeto. A execução do cenário retornará ao bloco atual e continuará no diagrama atual assim que o bloco “Fim” for alcançado no diagrama externo. Para o bloco “Processo” é especificada a propriedade “Nome do diagrama” (nome do arquivo do diagrama onde a execução do cenário continuará).
  1. Bloco “Condição” verifica a condição especificada para ver se é verdadeira, após o que a execução do cenário 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 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 – 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 é: $IndexSaveResult>=0. Ou seja, o índice de salvamento de resultados deve ser maior que zero.

  1. Bloco “Condição” verifica a condição especificada para ver se é verdadeira, após o que a execução do cenário 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 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 – 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 é: $SendSuccess. Ou seja, a variável booleana = $true.

  1. Bloco “Gravar valor na célula” permite gravar um valor em uma célula de um documento Excel. Para este bloco, são especificadas as seguintes propriedades:
  • Link para o documento (link para o documento com o qual está sendo trabalhado atualmente. O nome da variável nesta propriedade deve coincidir com o nome da variável na propriedade "Link para o documento", dos blocos "Criar documento" ou "Abrir documento" do grupo Excel, que foram usados anteriormente para criar ou abrir este documento);
  • Planilha (número da planilha onde a célula desejada está localizada, a numeração começa em 1);
  • Linha (número da linha onde a célula desejada está localizada, a numeração começa em 1);
  • Coluna (número da coluna onde a célula desejada está localizada, a numeração começa em 1);
  • Valor (constante, variável ou resultado de cálculos que deve ser gravado na célula desejada).
  1. Bloco “Atribuir valor à variável” estabelece novos valores para uma ou mais variáveis.
  1. Bloco “Gravar valor na célula” permite gravar um valor em uma célula de um documento Excel. Para este bloco, são especificadas as seguintes propriedades:
  • Link para o documento (link para o documento com o qual está sendo trabalhado atualmente. O nome da variável nesta propriedade deve coincidir com o nome da variável na propriedade "Link para o documento", dos blocos "Criar documento" ou "Abrir documento" do grupo Excel, que foram usados anteriormente para criar ou abrir este documento);
  • Planilha (número da planilha onde a célula desejada está localizada, a numeração começa em 1);
  • Linha (número da linha onde a célula desejada está localizada, a numeração começa em 1);
  • Coluna (número da coluna onde a célula desejada está localizada, a numeração começa em 1);
  • Valor (constante, variável ou resultado de cálculos que deve ser gravado na célula desejada).
  1. e 29. Blocos “Fim” (esses blocos encerram a execução do cenário ou retornam o diagrama do subprocesso ao processo principal).

Diagrama “Carregar configurações”

  1. Bloco “Início” (a partir deste bloco começa qualquer diagrama).
  2. Bloco “Abrir arquivo” exibe uma janela de diálogo que permite ao usuário abrir um arquivo. Para este bloco, são especificadas as seguintes propriedades:
  • Título (Texto que será exibido no título da janela de diálogo);
  • Filtro (filtro de arquivos para cada parâmetro de filtragem, a linha do filtro contém a descrição do filtro, seguida por uma barra vertical (|) e o padrão do filtro. As linhas para diferentes parâmetros de filtragem são separadas por uma barra vertical).
  1. Bloco “Janela para entrada de texto” mostra uma janela de diálogo modal destinada a obter informações do usuário. Para este bloco, são especificadas as seguintes propriedades:
  • Título (texto que será exibido no título da janela de diálogo);
  • Mensagem (texto que será exibido dentro da janela de diálogo).
  1. Bloco “Condição” verifica a condição especificada para ver se é verdadeira, após o que a execução do cenário 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 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 – a saída é “Não”.```markdown $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 é definida como: [int]::TryParse($Result, [ref] $IndexPhone). Este método converte texto em número e retorna um resultado lógico, que é verificado como $true.

  1. Bloco “Janela para entrada de texto” exibe uma caixa 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 caixa de diálogo);
  • Mensagem (texto que será exibido dentro da caixa de diálogo).
  1. Bloco “Condição” verifica a condição especificada quanto à veracidade, 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 é definida como: [int]::TryParse($Result, [ref] $IndexFIO). Este método converte texto em número e retorna um resultado lógico, que é verificado como $true.

  1. Bloco “Janela para entrada de texto” exibe uma caixa 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 caixa de diálogo);
  • Mensagem (texto que será exibido dentro da caixa de diálogo).
  1. Bloco “Executar expressão” inicia a execução de uma ou mais expressões em uma linguagem compatível com PowerShell. Neste caso, uma expressão é utilizada.
  1. Bloco “Abrir arquivo” exibe uma caixa de diálogo que permite ao usuário abrir um arquivo. Para este bloco, as seguintes propriedades são especificadas:
  • Título (Texto que será exibido no cabeçalho da caixa de diálogo);
  • Filtro (filtro de arquivos para cada parâmetro de filtragem, a string do filtro contém a descrição do filtro, seguida por uma barra vertical (|) e o padrão do filtro. As strings para diferentes parâmetros de filtragem são separadas por uma barra vertical).
  1. Bloco “Ler arquivo” permite ler o conteúdo de um arquivo de texto em uma variável. Para este bloco, as seguintes propriedades são especificadas:
  • Nome do arquivo (nome do arquivo de texto cujo conteúdo deve ser lido);
  • Codificação (codificação do arquivo).
  1. Bloco “Atribuir valor a 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.
  1. - 16. Blocos “Fim” (esses blocos encerram a execução do script ou retornam o diagrama do subprocesso ao processo principal).

Diagrama “Enviar mensagem”

  1. Bloco “Início” (a partir deste bloco, qualquer diagrama começa).
  2. Bloco “Atribuir valor a 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.
  1. 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 zero), e então a execução do script continua na direção da 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, é 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 $Telefone.Length), a execução do script continuará na direção da 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.
  1. Bloco “Condição” verifica a condição especificada quanto à veracidade, 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”.


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

Neste caso, a condição estabelecida é: \[char]::IsDigit($Telefone\[$indchar]). Ou seja, verifica-se que em cada caractere da string é um número.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXeVlaVzxYQlFo7WB8KcBAWL-1Px4iISfnnXHjOWdc96nYE_Z8g7NKydJpiZzx8x4DiIEOrm0eA1Q0QGXXvWlwougP7EJQNIhSztusWN6kZk4DyQbwK2TFZZdb4twvkZzYieMLzCug?key=cSgHfCR5kYldViNwtblH6ZqL" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcDTOtjtSYhnYvo_Zlt4pp9saTwMd74p6DmT1qdLeiIEvO-7HFHBadyGHDuRaU2ZMVOV2VPz7ElOxTYhYJx8sTBlmi6EhI-qYwRVuh2b6V0_uHFzlRr_e9iroBwjLOt61jwVBIdXA?key=cSgHfCR5kYldViNwtblH6ZqL" alt=""><figcaption></figcaption></figure>

6. **Bloco “Obter substring”** permite extrair uma substring do texto original. Para este bloco, as seguintes propriedades estão especificadas:

* Texto (string de entrada);
* Índice inicial (índice do caractere inicial, a numeração começa em 0. Ao especificar um valor menor que zero, o índice inicial é contado a partir do final da string);
* Número de caracteres (número de caracteres. Ao especificar um valor vazio ou um número igual a zero, a string será extraída do índice especificado até o final da string).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdF8KePdpJRqOUgsr5S0ch18kpWFHLsnTBFxhg5ATuhK1MnuPye0D8pWchidtr_mEbKc-5971gZz03taRHURBkse-XVNueCXko3cglOp22dlYYdShHdGuDI69xmVxZq5veFbN7Z-A?key=cSgHfCR5kYldViNwtblH6ZqL" alt=""><figcaption></figcaption></figure>

7. **Bloco “Obter substring”** permite extrair uma substring do texto original. Para este bloco, as seguintes propriedades estão especificadas:

* Texto (string de entrada);
* Índice inicial (índice do caractere inicial, a numeração começa em 0. Ao especificar um valor menor que zero, o índice inicial é contado a partir do final da string);
* Número de caracteres (número de caracteres. Ao especificar um valor vazio ou um número igual a zero, a string será extraída do índice especificado até o final da string).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdLkeqKitL4EZXdYyf1nds1BiMWpKbLnNVcyj-ZztUkBkECxu9yyVndBaQ5aCPflLf83JBDP5BCeqqMdg4jilrd0VsBXZsJGiLUdDAWUFYgub_1V2odAXjlxcSU064d3sylcoAAQQ?key=cSgHfCR5kYldViNwtblH6ZqL" alt=""><figcaption></figcaption></figure>

8. **Bloco “Atribuir valor à variável”** estabelece novos valores para uma ou mais variáveis. Neste caso, nas propriedades estão indicados três valores que devem ser atribuídos a três variáveis, respectivamente.

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

9. **Bloco “Condição”** verifica a condição especificada quanto à veracidade, após o que a execução do script continua para a saída “Sim” (se a condição for atendida) ou para a saída “Não” (se a condição não for atendida).&#x20;

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

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

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

Neste caso, a condição estabelecida é: $normalizednumber.Length==11. Ou seja, o comprimento da string deve ser igual a 11.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcB32eiKh_L_su3dtWLb9J8EUMGLWTwe7wbrgWxqgzSFiyiPFJvhvlA6vsgzQNQ57D1owvCMN3RvEwlS5paBUbm-JmNc86_R9j1vdklLEzpuzcE-2XyuNorqCN5xqpfpl6OKrCR?key=cSgHfCR5kYldViNwtblH6ZqL" alt=""><figcaption></figcaption></figure>

10. **Bloco “Log”** permite registrar mensagens e/ou valores de variáveis durante a execução do script do robô. Para este bloco, está especificada a propriedade “Valor”, e também está ativada a flag “Exibir no status”. Entre aspas está uma constante de texto, e o nome da variável começa com o símbolo $. Ou seja, registra no log a mensagem “Enviando mensagem para o número:” e o próprio número e exibe essa mensagem no status.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfpjgVE0SkC-Vq3ix07z-cOAwyJpw6Rr_pvd5JizwTJUls32_82BI38f4V7OCLPsLtraWjkzyiIuDzPuwycA_v3J0qmcBbA5y9szjxsx5eRv3u6lDkQUoSojT7GfZYJcajLM3iqpg?key=cSgHfCR5kYldViNwtblH6ZqL" alt=""><figcaption></figcaption></figure>

11. **Bloco “Codificar string de URL”** codifica uma string para transmissão em um URL. Para este bloco, está especificada uma propriedade “Texto” (string de entrada).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXd7KOIC16Q0R1A9lQPvwxxt6nosiLP0Eno5PmlnKDOPi7cQ7kgQsUlovkBFsQ2UfZeMZdoYj1y61OUZk2Zc8SYjWWO5qsV6_jDyiw95Ye2PlXJLBenST1S-iDk-AqrbtUkZkJE8?key=cSgHfCR5kYldViNwtblH6ZqL" alt=""><figcaption></figcaption></figure>

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

* URL (endereço da página a ser aberta ao iniciar o Google Chrome);
* 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_4nXcIIwpR3DnxCAiSrcpGCPv0iNUAoneMckgUMRbE8ModsH_4RNa9yP_bnR9qWT3mB2dzy-SihZf5jHrr8-wb3VPFwSAPAlVqTQg5Y-94VKy_zXncD55xEOP0isKXaKiVwkQehxtHlw?key=cSgHfCR5kYldViNwtblH6ZqL" alt=""><figcaption></figcaption></figure>

13. **Bloco “Aguardar aparecimento”** aguarda o aparecimento de um elemento da interface do usuário na tela adicionado ao diagrama usando a ferramenta de gravação de ações do usuário.&#x20;
14. **Bloco “Verificar presença de elemento”** verifica a presença de um elemento especificado na página da web. Se o elemento for encontrado, a execução do script continuará pela saída “Sim”, caso contrário - pela saída “Não”. Para este bloco, estão especificadas as seguintes propriedades:

* Seletor (identificador da janela do navegador e do elemento da página da web);
* 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_4nXf2TO2buskySMi704OvIkyXCuWCEunCVMIxP0e3-Pp6Mycp_puQUFuDDRmlF2ac-2dA4rduK1NRIsBnBYNJ-XUyR2LU36CSJ6B8kgqDPlE-UlPH-p4FQ1Sodc5A9FWeEzdy6WVfFQ?key=cSgHfCR5kYldViNwtblH6ZqL" alt=""><figcaption></figcaption></figure>

15. **Bloco “Clique com o mouse”** realiza um clique no elemento especificado do aplicativo adicionado ao diagrama usando a ferramenta de gravação de ações do usuário. Mais detalhes sobre isso \*aqui\*.
16. **Bloco “Log”** permite registrar mensagens e/ou valores de variáveis durante a execução do script do robô. Para este bloco, está especificada a propriedade “Valor”, e também está ativada a flag “Exibir no status”. Entre aspas está uma constante de texto, e o nome da variável começa com o símbolo $. Ou seja, registra no log a mensagem “Mensagem enviada” e a exibe no status.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcnvmKBlyvOLvyBhTbFU5uh6kXMqQVymtiAYgvDN1a0-PuG94TN4xSoZzz8tyZOmtpv9Cmkp-JEvAxn2MUh4ekHOjJ7m-1dSqI5NgZ8aCTSSagKwef5aUPqxoq35DMNLNaUuhvXzw?key=cSgHfCR5kYldViNwtblH6ZqL" alt=""><figcaption></figcaption></figure>

17. **Bloco “Atribuir valor à variável”** estabelece novos valores para uma ou mais variáveis. Neste caso, nas propriedades está indicado um valor que deve ser atribuído a uma variável, respectivamente.<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXe_QlVK_sX9Jio0uniFdrYfCGM8T0r7U_ERxL71MRcB2wQvy5j5UhPEe98jIaO7u0X97wMLHxhk8OwWpcEJWCg-5QZD_1PKMN2WZ_rMDdAxqx6zBh_7wWFKT561e-16oydsuJZwZA?key=cSgHfCR5kYldViNwtblH6ZqL" alt=""><figcaption></figcaption></figure>

18. **Bloco “Verificar a presença do elemento”** verifica a presença de um elemento especificado na página da web. Se o elemento for encontrado, a execução do script continuará pelo caminho “Sim”, caso contrário - pelo caminho “Não”. Para este bloco, as seguintes propriedades são especificadas:

* Seletor (identificador da janela do navegador e do elemento da página da web);
* 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_4nXd4bKwOzHWpIB33DN9vPPdvxaBBcDdIVRDY0EgepQZ24n5hyHSfIulqIO4ddyv6WWj1Xu7lVo0PmXiWyb2LsWFoYeOigpSfKwBDTWYACKQ34IRkxs-Unq6Cb3sFycrr2gl4SHXB?key=cSgHfCR5kYldViNwtblH6ZqL" alt=""><figcaption></figcaption></figure>

19. **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, e a flag “Exibir no status” é ativada. Entre aspas, uma constante de texto é especificada, e o nome da variável começa com o símbolo $. Ou seja, registra no log a mensagem “Não é possível enviar a mensagem para o número” e a exibe no status.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcwGEJwCJTwIOdqjZ-jZxQQt3GRgEnVikSCj37_5lcNeHg7ZoNbtzgeFEzrm1DxdZr5s1ud7i0OdG_QHXSoyL1XWZ4uh24EkkJX_2eVvCVcLcVgyIepikkUxXNQ_mdWHJIwi1Bhgg?key=cSgHfCR5kYldViNwtblH6ZqL" alt=""><figcaption></figcaption></figure>

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

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

21. **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, e a flag “Exibir no status” é ativada. Entre aspas, uma constante de texto é especificada, e o nome da variável começa com o símbolo $. Ou seja, registra no log a mensagem “Erro ao enviar a mensagem.” e a exibe no status.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdbiJhaU0f0U-hv5FjrlSuN5IFIOv3fL8W1InziCUrxfFjY8EjWrnZijwCMejrsOG6s9Y4LUukd827K1bAXm8W3bFq6ELX74qIJnitRGMmtGYPgPUqAsMORi___iPNArmptidBRxw?key=cSgHfCR5kYldViNwtblH6ZqL" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfEf6AC0jfDPPrdnn4R5vW4nuFr7Y7DQxFSR2V1cmYtKcHsnm1t_WIG3dcc-177KFM7ofGAPwhNiv6UYEGeG1zZhK6g6JSowJVROtFAB2mdhqxBZCoram2F597cDVWxlYH9zU5g2w?key=cSgHfCR5kYldViNwtblH6ZqL" alt=""><figcaption></figcaption></figure>

23. **Bloco “Condição”** verifica a condição especificada para ver se é verdadeira, após o que a execução do script continua pelo caminho de saída “Sim” (se a condição for atendida) ou pelo caminho de saída “Não” (se a condição não for atendida).&#x20;

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

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 é: $attempts<4. Ou seja, o número de tentativas deve ser menor que 4.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXeSwFQXXv8dEFq6xmil4UzR9SFLvmQFojRuHoYr0cJvPWSAq5lS1BWZtGlUR3zztoq-CPy2fbvK6t_MbijKqrDap-1oCG-C2p3CP30GnyXX_wKTsa8p2AUrI10dvNubphew8CKWhw?key=cSgHfCR5kYldViNwtblH6ZqL" alt=""><figcaption></figcaption></figure>

24. **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, e a flag “Exibir no status” é ativada. Entre aspas, uma constante de texto é especificada, e o nome da variável começa com o símbolo $. Ou seja, registra no log a mensagem "Reenvio. Tentativa nº " e o número da tentativa e a exibe no status.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdZxh2EQz_HCNj8f23uoeQuTRDksDsMFYzONVeeXUXS6myPy5HComtz_fy5nfFSuB7hY4B2sg7WiP-_uqwPPy3PeAaOGRCNy11PlohkIAmzV88lAIsZ3anSR75-834I6y6T3fASlg?key=cSgHfCR5kYldViNwtblH6ZqL" alt=""><figcaption></figcaption></figure>

25. **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, uma constante de texto é especificada, e o nome da variável começa com o símbolo $. Ou seja, registra no log a mensagem “Erro crítico…”

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXc3geEavsddbuagGi7R1Q8H4MDKgLeLtQBujxNeOlCsbxfDt0A8-oJQr_FWZdMH5S2m5IWgLJCLVPmlyUeBpMYw9JxQRVy-mwWMGNAsulGRdwyFfs3uHp2-W4oR8GIoXHLBSBW8ug?key=cSgHfCR5kYldViNwtblH6ZqL" alt=""><figcaption></figcaption></figure>

26. \- 28. **Blocos “Fim”** (esses blocos encerram a execução do script ou retornam o diagrama do subprocesso ao processo principal).