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):
- Bloco “Início” (a partir deste bloco começa qualquer diagrama).
- 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á).
- 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.
- 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).
- 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.
- 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…”.
- 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.
- 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).
- 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.
- 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).
- 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).
- 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.
- 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.
- 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.
- 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.
- 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"
- 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.
- 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.
- 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.
- 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).
- Bloco “Atribuir valor à variável” estabelece novos valores para uma ou mais variáveis.
- 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).
- 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”
- Bloco “Início” (a partir deste bloco começa qualquer diagrama).
- 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).
- 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).
- 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.
- 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).
- 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.
- 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).
- 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.
- 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).
- 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).
- 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.
- - 16. Blocos “Fim” (esses blocos encerram a execução do script ou retornam o diagrama do subprocesso ao processo principal).
Diagrama “Enviar mensagem”
- Bloco “Início” (a partir deste bloco, qualquer diagrama começa).
- 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.
- 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.
- 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). 
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 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. 
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). 
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 é: $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).