I. Introdução e Conceitos Básicos
- O que é UiPath?
- UiPath é uma plataforma líder em Automação Robótica de Processos (RPA) que permite automatizar tarefas repetitivas em computadores, interagindo com aplicativos, sites, planilhas, e-mails, etc.
- O que é RPA?
- RPA (Robotic Process Automation) significa Automação Robótica de Processos. São “robôs” de software que imitam ações humanas em computadores para realizar tarefas repetitivas, liberando humanos para trabalhos mais estratégicos.
- Onde posso aprender UiPath?
- Canal do YouTube do Simão Pedro Da Silva: Possui vários vídeos e tutoriais em português.
- UiPath Academy: Site oficial da UiPath, com cursos e treinamentos (muitos em inglês).
- Comunidade Hiperautomação: Plataforma com cursos, incluindo um curso desenvolvido pelo Simão Pedro Da Silva.
- Desafiosrpa.com.br: Site com recursos, como por exemplo, desafios.
- O que é o “UiExplorer”?
- Uma ferramenta dentro do UiPath Studio que permite inspecionar detalhadamente a interface de usuário de um aplicativo ou página web. Mostra a estrutura hierárquica dos elementos e permite gerar seletores precisos para interagir com eles.
- O que é o “Orchestrator”?
- Uma plataforma web centralizada para gerenciar, controlar e monitorar robôs UiPath. Permite agendamento, gerenciamento de robôs, filas de itens de trabalho, armazenamento seguro de credenciais (Assets), logs e gerenciamento de pacotes.
- O que é o REFramework?
- REFramework (Robotic Enterprise Framework) é um template de projeto fornecido pela UiPath. É uma estrutura robusta e escalável para construir robôs, especialmente para processos transacionais. Lida com tratamento de erros, retentativas, logging e outras boas práticas.
- O que é a “Modern Design Experience” no UiPath?
- Um conjunto de recursos e atividades mais recentes no UiPath Studio, projetados para simplificar a criação e aumentar a robustez das automações. Inclui novas atividades (como “Use Application/Browser”), o “Object Repository” (para gerenciar elementos da UI) e melhorias nos seletores.
II. Instalação, Configuração e Licenciamento
- Como configuro o UiPath Assistant para se conectar ao Orchestrator?
- Abra o UiPath Assistant.
- Vá para as configurações (ícone de engrenagem ou menu).
- Procure por “Orchestrator Settings”.
- Insira a URL do seu Orchestrator e a Chave da Máquina (Machine Key). A Chave da Máquina é obtida no Orchestrator, na página de configuração da sua máquina.
- O status deve mudar para “Connected, Licensed”.
- Qual versão do UiPath devo usar?
- Community Edition: Gratuita para uso individual, educacional e para pequenas empresas (com limitações de faturamento e número de máquinas/usuários).
- Studio Pro: Versão paga, com mais recursos, voltado para uso empresarial.
- Enterprise: Versão paga, completa.
- O UiPath Community Edition pode ser usado por empresas?
- Sim, mas com restrições. A Community Edition é gratuita para uso individual, educacional e para pequenas empresas (com menos de 250 máquinas ou menos de US$5 milhões em faturamento anual).
- Onde encontro a opção para alternar entre “Modern Design Experience” e “Classic”?
- Versões mais antigas: “Home” (Início) -> “Settings” (Configurações) -> “Design” -> “New Projects” (Novos Projetos) -> “Use Modern for new projects”.
- Versões mais recentes: Dentro de um projeto, clique no ícone de engrenagem na aba “Design” e, em seguida, em “Configurações do Projeto”.
- Como publico um projeto no Orchestrator?
- No UiPath Studio, clique no botão “Publish” (Publicar).
- Escolha “Orchestrator” como o destino.
- Seu UiPath Robot/Assistant deve estar conectado ao Orchestrator.
- Você precisa de permissões para publicar.
- Importante: Não publique um projeto que foi salvo como “Template”. Crie um novo projeto a partir do template e publique o projeto.
- Como resolvo o erro “Robot does not exist” (O robô não existe)?
- Verifique no Orchestrator se um robô foi criado e atribuido a máquina host.
- Como resolvo o erro “Não é possível se comunicar com o navegador” ou “Cannot communicate with the browser”?
- Extensão do Navegador: Verifique se a extensão do UiPath para o seu navegador (Chrome, Firefox, Edge, etc.) está instalada e ativada.
- Reinicie: Reinicie o navegador e/ou o UiPath Studio.
- Reinstale: Reinstale a extensão do navegador, se necessário.
- Versões: Verifique se as versões do UiPath Studio, do navegador e da extensão são compatíveis.
- Firewall/Proxy: Verifique se configurações de firewall ou proxy estão bloqueando a comunicação.
- Executar como Administrador: Tente executar o UiPath Studio como administrador (clique com o botão direito -> Executar como administrador).
- Verificar Seletor: Certifique-se de que o seletor do navegador está correto.
- Como resolvo o erro “An extension you are using is not working properly”?
Reinstale a extensão do navegador. - Como resolvo o erro “Excel Application Scope: Error opening workbook. If Excel is installed, run the ‘Repair Tool for Microsoft Office Interop’ in the Tools tab on the Start screen.”?
- Repare o pacote do excel.
- Reinstale o uipath.
III. Atividades e Automação: Conceitos Gerais
- Como faço para o robô repetir uma sequência de ações?
- Loops:
- For Each: Itera sobre itens de uma lista, array, DataTable, etc.
- For Each Row in Data Table: Itera sobre as linhas de um DataTable.
- Do While: Repete as ações enquanto uma condição for verdadeira. A condição é verificada no início de cada iteração.
- While: Semelhante ao “Do While”, mas a condição é verificada no final de cada iteração (garante que o bloco seja executado pelo menos uma vez).
- Loops:
- Como faço um loop que execute um número específico de vezes?
- Use um loop “While” ou “Do While” com uma variável contadora. Inicialize a variável (ex: contador = 1). Dentro do loop, incremente o contador (contador = contador + 1). Na condição do loop, verifique se o contador atingiu o número desejado (ex: contador <= 20).
- Como faço para o robô esperar um tempo determinado?
- Use a atividade “Delay”. Você pode especificar o tempo em segundos, milissegundos, ou usar um formato como 00:00:10 (10 segundos).
- Como faço para o robô esperar até que um elemento apareça na tela?
- Element Exists: Verifica se um elemento está presente (retorna True ou False). Use em um loop para verificar repetidamente.
- Find Element: Tenta encontrar um elemento. Se não encontrar dentro do tempo limite (Timeout), lança um erro.
- On Element Appear: Executa uma sequência quando um elemento aparece.
- Wait Element Vanish Aguarda um elemento desaparecer.
- Como faço para o robô esperar até que um elemento desapareça da tela?
- Use a atividade “Wait Element Vanish” (Aguardar Elemento Desaparecer). Indique o elemento que você quer que desapareça.
- O que é e como usar um “seletor” (selector) no UiPath?
- Um seletor é uma string que identifica um elemento da interface do usuário (UI). É como um “endereço” do elemento.
- O UiPath tenta gerar seletores automaticamente, mas nem sempre eles são confiáveis.
- Use o UiExplorer para inspecionar os elementos e criar/editar seletores.
- Seletores Dinâmicos: Use variáveis e curingas (*, ?) para tornar os seletores flexíveis (por exemplo, para lidar com números de linha que mudam, títulos de janela que variam, etc.). Exemplo: <wnd app=’chrome.exe’ title=’Página – *’ />
- Atributos: Use atributos como aaname (nome acessível), text (texto do elemento), id, class, tag, parentid, tableRow, tableCol, etc., para identificar os elementos.
- Como usar variáveis em seletores?
- Concatene a variável com a string do seletor. Exemplo: “<webctrl tag=’A’ aaname='” + nomeVariavel + “‘ />”
- Como posso fazer o robô clicar em um botão ou outro elemento da interface?
- Use a atividade “Click”. Indique o elemento usando um seletor.
- Opções:
- SimulateClick: Simula um clique do mouse (mais rápido, mas nem sempre funciona).
- SendWindowMessages: Envia mensagens do Windows para o elemento (outra alternativa).
- Click Image: Clica em uma imagem específica (menos confiável se a aparência mudar).
- Como posso fazer o robô digitar texto em um campo?
- Use a atividade “Type Into”.
- Indique o campo usando um seletor.
- Especifique o texto a ser digitado.
- SimulateType: Tenta digitar mais rápido (mas nem sempre funciona).
- EmptyField: Limpa o campo antes de digitar.
- Como posso fazer o robô extrair texto de um elemento da tela?
* Use a atividade "Get Text". Indique o elemento e salve o resultado em uma variável.
- Como posso copiar e colar texto (usando a área de transferência)?
- Copiar: Use “Set to Clipboard” (para texto) ou “Get Text” (para extrair de um elemento) e depois use o “set to clipboard”.
- Colar: Use “Get from Clipboard” para obter o texto e depois use “Type Into” para colar. Ou use “Send Hotkey” com Ctrl+V.
- Como posso usar atalhos de teclado (como Ctrl+C, Ctrl+V, Enter, Tab)?
- Use a atividade “Send Hotkey”.
- O que é e como usar o “Anchor Base”?
- É uma atividade que ajuda a localizar elementos que não têm seletores confiáveis.
- Você define um “Anchor” (Âncora), que é um elemento próximo e estável.
- O UiPath encontra o elemento desejado em relação à âncora.
- Útil quando a posição dos elementos muda.
- O que é e como usar “Find Children”?
- Localiza todos os elementos filhos (sub-elementos) de um elemento pai, correspondentes a um filtro específico.
- Útil para iterar sobre elementos de uma lista, tabela, etc., quando a estrutura da página é dinâmica.
- Como lidar com pop-ups ou janelas de diálogo?
* Use "Element Exists" para verificar se a janela apareceu.
* Use "Attach Window" para focar o robô na janela pop-up.
* Use as atividades de interação (Click, Type Into, etc.) dentro do escopo do "Attach Window".
- Como lidar com erros e exceções?
* **Try Catch:** Coloque as atividades que podem gerar erros dentro do bloco "Try". No bloco "Catch", você pode tratar o erro. O bloco "Finally" é opcional e sempre será executado.
* **ContinueOnError:** Em algumas atividades, você pode definir essa propriedade como "True" para que o robô continue mesmo se a atividade falhar (use com cuidado).
* **Rethrow:** Use para relançar a exceção atual, permitindo que um bloco "Try Catch" de nível superior a trate.
* **Throw:** Use para lançar uma nova exceção.
IV. Trabalhando com Dados (Strings, Números, Datas, DataTables)
- Como converter uma string para um número inteiro (int)?
* `CInt(suaString)` (ex: `CInt("123")`)
* `Integer.Parse(suaString)`
* `Int32.TryParse(suaString, variavelInteira)` (mais seguro)
- Como converter uma string para um número decimal (double)?
* `CDbl(suaString)`
* `Double.Parse(suaString)`
* `Double.TryParse(suaString, variavelDouble)`
- Como dividir uma string em partes (split)?
* `minhaString.Split(" "c)` (divide a string usando o espaço como separador)
- Como remover espaços em branco do início e do fim de uma string?
* `.Trim()` (remove de ambos os lados)
* `.TrimStart()` (remove do início)
* `.TrimEnd()` (remove do final)
- Como converter texto para maiúsculas ou minúsculas?
* **Maiúsculas:** `minhaString.ToUpper()`
* **Minúsculas:** `minhaString.ToLower()`
- Como remover acentos e caracteres especiais de uma string?
- System.Text.Encoding.GetEncoding(“ISO-8859-8”).GetBytes(StringComAcento)
- Como obter a data e hora atuais?
- Now (retorna data e hora)
- Now.Date (retorna apenas a data)
- Now.ToString(“dd/MM/yyyy”) (formata a data)
- Now.ToString(“HH:mm:ss”) (formata a hora)
- Now.Month (retorna o mês)
- Now.AddDays(1) (retorna o dia seguinte)
- Entre outras.
- Como obter o primeiro dia do mês atual?
- New DateTime(Now.Year, Now.Month, 1)
- Como concatenar (juntar) strings?
- Use o operador +. Exemplo: “Texto 1″ + ” ” + “Texto 2”
- Use String.Format.
- Como fazer uma quebra de linha em uma string?
* Use `Environment.NewLine`.
- O que é um DataTable?
- Um DataTable é um objeto que representa uma tabela de dados em memória (linhas e colunas). É usado para armazenar dados extraídos de planilhas, bancos de dados, sites, etc.
- Como criar um DataTable?
* Use a atividade "Build Data Table".
* Você pode também criar um datatable em branco e ir adicionando linhas.
- Como adicionar uma linha a um DataTable?
- Use a atividade “Add Data Row”.
- Como obter o número de linhas em um DataTable?
* `meuDataTable.Rows.Count`
- Como acessar o valor de uma célula em um DataTable?
* `meuDataTable.Rows(indiceLinha).Item("NomeDaColuna").ToString()`
* `meuDataTable.Rows(indiceLinha)(indiceColuna).ToString()`
- Como iterar sobre as linhas de um DataTable?
- Use a atividade “For Each Row in Data Table”.
- Como filtrar um DataTable?
- Use DataTable.Select(). Exemplo: meuDataTable.Select(“Coluna1 = ‘Valor’ AND Coluna2 > 10”)
- Use LINQ: meuDataTable.AsEnumerable().Where(Function(row) row(“Coluna1”).ToString() = “Valor”).CopyToDataTable().
- Use o Filter data table.
- Como agrupar e agregar dados em um DataTable (como no Excel)?
Use Group by.
V. Trabalhando com Arquivos e Pastas
- Como obter o caminho completo de um arquivo que foi baixado recentemente?
Use: Directory.GetFiles(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) + “\Downloads”).OrderByDescending(Function(d) New FileInfo(d).CreationTime).First(). - Como obter uma lista de todos os arquivos em uma pasta?
* Use `Directory.GetFiles("CaminhoDaPasta")`.
- Como renomear um arquivo?
* Use a atividade "Move File" (Mover Arquivo). Se você especificar um novo nome no caminho de destino, o arquivo será renomeado.
- Como criar uma pasta?
* Use a atividade "Create Directory" (Criar Diretório).
- Como verificar se um arquivo ou pasta existe?
* Use `File.Exists("CaminhoDoArquivo")` ou `Directory.Exists("CaminhoDaPasta")`.
VI. Integração com Outras Aplicações
- Como interagir com o Microsoft Outlook?
- Use as atividades do pacote “UiPath.Mail.Activities” (por exemplo, “Send Outlook Mail Message”, “Get Outlook Mail Messages”).
- Como interagir com o Google Workspace (Gmail, Sheets, Drive)?
- Use o pacote “UiPath.GSuite.Activities”. Você precisará configurar as credenciais de acesso.
- Como interagir com o SAP?
- Use as atividades específicas para SAP (UiPath tem integração nativa com o SAP).
- Como interagir com o Salesforce?
- Use o pacote “UiPath.Salesforce.Activities”.
- Como interagir com APIs (REST/SOAP)?
- Use a atividade “HTTP Request”.
- Para APIs REST, você geralmente usará métodos como GET, POST, PUT, DELETE.
- Para APIs SOAP, você pode precisar usar a atividade “SOAP Request”.
- Como integrar com o Microsoft Power Automate?
- Você pode usar o “Start Process” do UiPath para iniciar um fluxo do Power Automate.
VII. Outros
- O que é a “senha de aplicativo” do Google e como usá-la?
- O Google não recomenda mais o uso de senhas de aplicativo para aplicativos menos seguros. Em vez disso, use a autenticação OAuth 2.0. A senha de aplicativo era uma senha gerada especificamente para um aplicativo, que podia ser usada em vez da sua senha principal do Google. Era menos seguro do que usar o OAuth 2.0.
- O que é OCR?
- OCR (Optical Character Recognition) é uma tecnologia que converte imagens de texto (como digitalizações ou fotos de documentos) em texto editável.
- O UiPath tem atividades de OCR (como “Read PDF with OCR”) e integrações com mecanismos OCR como Tesseract OCR (gratuito) e Google Cloud Vision OCR (pago).
- O que é um “gatilho” (trigger) no Orchestrator?
- Um gatilho é uma condição que inicia a execução de um robô. Pode ser um gatilho de tempo (por exemplo, executar o robô todos os dias às 8h), um gatilho de fila (executar o robô quando um novo item é adicionado a uma fila), ou outros tipos de gatilhos.
- O que é um “ativo” (asset) no Orchestrator?
- Um ativo é um item de informação armazenado no Orchestrator, como credenciais, configurações, ou outros dados que podem ser usados por vários robôs. É uma forma segura de armazenar informações sensíveis.
- Como posso fazer o UiPath “clicar” em um elemento específico dentro de uma lista de elementos semelhantes em uma página web?
- Usando o UiExplorer:
- Abra o UiExplorer e inspecione os elementos da lista.
- Identifique um atributo que seja único para cada elemento da lista (por exemplo, um id, aaname, text, ou uma combinação de atributos).
- Se o atributo único incluir um número sequencial (ex: item1, item2, item3), você pode usar uma variável para tornar o seletor dinâmico.
- Se não houver um atributo único óbvio, você pode precisar usar uma combinação de:
- “Find Children” (Encontrar Filhos): Para obter uma coleção de todos os elementos filhos de um elemento pai comum.
- “For Each” (Para Cada): Para iterar sobre a coleção de elementos filhos.
- “Get Attribute” (Obter Atributo): Dentro do loop, use “Get Attribute” para extrair um atributo de cada elemento (por exemplo, o texto) e compará-lo com o valor que você deseja.
- “Click” (Clicar): Quando você encontrar o elemento correto (com base no atributo), use a atividade “Click” para clicar nele.
- Se o site usar frameworks JavaScript como Angular ou React, os seletores podem ser mais complexos. Pode ser necessário usar técnicas mais avançadas, como:
* Injeção de JavaScript: Usar a atividade “Inject Js Script” para executar código JavaScript dentro da página e interagir diretamente com os elementos.
* Bibliotecas de terceiros: Usar bibliotecas como o Selenium WebDriver (através de atividades personalizadas ou chamadas de código) para ter mais controle sobre o navegador.
* Tentar usar atividades mais genéricas: “Click Text” (Clicar em Texto), “Click Image” (Clicar em Imagem). Essas atividades são menos confiáveis, mas podem funcionar em alguns casos. - **Se nada disso funcionar, como último recurso, use posições relativas do mouse e clicks, ou use atividades que interagem por meio de envio de mensagens.
- Existe alguma extensão que me auxilie com o CAPTCHA?
Sim, uma extensão é o Buster: Captcha Solver for Humans. - O UiPath é compativel com o Windows 7?
Sim. - Como faço para que a URL seja aberta em um browser específico?
Dentro do Open Browser/Use aplication, em propriedades na opção “Tipo de Navegador” altere para o browser de sua preferência. - Como faço para o robô escrever em um arquivo de texto?
Use a atividade “Write Text File”. - O que fazer se o robô não consegue identificar o campo correto por causa de um elemento instável (ex: um popup)?
Use a atividade “Anchor Base”. - Como posso realizar a leitura de dados de uma coluna da planilha?
Você pode utilizar a atividade “Read Column”.