/# Fluxo para login no SEI: Necessário criar variáveis de entrada: login_sei: login para entrar no SEI. Valor cadastrado para a variável deverá conter CPF com exatamente 11 caracteres numéricos. Favor não incluir pontos (.) ou hífen (-). orgao_sei: orgão de login no SEI. Valor cadastrado para variável deverá ser exatamente igual à existente na lista de órgãos disponíveis na página inicial de login, inclusive com todas as letras maiúsculas. senha_sei: senha para login no SEI. Recomendamos incluir variável como confidencial.#/ # Análise se CPF cadastrado na variável de entrada "login_sei" possui 11 caracteres numéricos. Text.ParseText.RegexParseForFirstOccurrence Text: login_sei TextToFind: $'''[0-9]{11}''' StartingPosition: 0 IgnoreCase: False Match=> login_sei_erro IF login_sei <> login_sei_erro THEN SET login_sei_erro_mensagem TO $'''CPF cadastrado na variável \"login_sei\" deverá ter exatamente 11 caracteres numéricos. Favor não incluir pontos (.) ou hífen (-).''' Display.ShowMessageDialog.ShowMessage Title: $'''Erro no cpf digitado para login''' Message: login_sei_erro_mensagem Icon: Display.Icon.ErrorIcon Buttons: Display.Buttons.OK DefaultButton: Display.DefaultButton.Button1 IsTopMost: False EXIT Code: 0 ErrorMessage: login_sei_erro_mensagem END # Inicia o Chrome na URL correta, que direciona o usuário para página de login, sem se preocupar se ele já estava logado . Por isso a URL básica do sei (https://www.sei.mg.gov.br) não foi utilizada, para prevenir erros de login. WebAutomation.LaunchChrome.LaunchChrome Url: $'''https://www.sei.mg.gov.br/sip/login.php?sigla_orgao_sistema=GOVMG&sigla_sistema=SEI&infra_url=L3NlaS8=''' WindowState: WebAutomation.BrowserWindowState.Maximized ClearCache: True ClearCookies: True WaitForPageToLoadTimeout: 20 Timeout: 60 PiPUserDataFolderMode: WebAutomation.PiPUserDataFolderModeEnum.AutomaticProfile BrowserInstance=> sei # Aguarda página inicial de login SEI ser carregada. Somente quando textos "Sistema Eletrônico de informações" e "Usuário Bloqueado" aparecerem é que próximas ações serão realizadas. WAIT (WebAutomation.WaitForWebPageContent.WebPageToContainText BrowserInstance: sei Text: $'''Usuário Bloqueado?''') WebAutomation.ExecuteJavascript BrowserInstance: sei Javascript: $'''function ExecuteScript() { var x = document.getElementsByTagName(\'option\'); for (var i = 0; i < x.length; i++) { if (x[i].text == \'%orgao_sei%\') { return true } } return false }''' Result=> orgao_erro IF orgao_erro = $'''false''' THEN SET orgao_erro_mensagem TO $'''Órgão cadastrado na variável \"orgao_sei\" não disponível na lista de órgãos da página de login SEI. Valor cadastrado para variável deverá ser exatamente igual à existente na lista de órgãos disponíveis na página inicial de login, inclusive com todas as letras maiúsculas.''' Display.ShowMessageDialog.ShowMessage Title: $'''Erro na sigla digitada do Órgão''' Message: orgao_erro_mensagem Icon: Display.Icon.ErrorIcon Buttons: Display.Buttons.OK DefaultButton: Display.DefaultButton.Button1 IsTopMost: False EXIT Code: 0 ErrorMessage: orgao_erro_mensagem END # Envia teclas para inclusão de login. Informações de login são lidas conforme variável de entrada "login_sei" criado no início do fluxo. WebAutomation.ExecuteJavascript BrowserInstance: sei Javascript: $'''function ExecuteScript() { usuario = document.getElementById(\"txtUsuario\") usuario.value = \"%login_sei%\" }''' Result=> Result2 # Envia teclas para inclusão de senha. Informações de senha são lidas conforme variável de entrada "senha_sei" criado no início do fluxo. WebAutomation.ExecuteJavascript BrowserInstance: sei Javascript: $'''function ExecuteScript() { senha=document.getElementsByName(\"pwdSenha\") senha[0].value=\"%senha_sei%\" senha_id=document.getElementById(\"pwdSenha\") senha_id.type=\"password\" senha_id.value=\"%senha_sei%\" }''' Result=> Result # Executa script Javascript para selecionar órgão de login. Órgão é escolhido conforme variável de entrada "orgao_sei" criado no início do fluxo. WebAutomation.ExecuteJavascript BrowserInstance: sei Javascript: $'''function ExecuteScript() { var x = document.getElementsByTagName(\'option\'); for (var i = 0; i < x.length; i++) { if (x[i].text == \'%orgao_sei%\') { x[i].selected = true } } }''' WebAutomation.ExecuteJavascript BrowserInstance: sei Javascript: $'''function ExecuteScript() { acessar=document.getElementById(\"Acessar\") acessar.click() }''' Result=> Result # Aguarda página inicial de SEI ser carregada. Somente quando textos "Controle de Processos" aparecer é que próximas ações serão realizadas. WAIT (WebAutomation.WaitForWebPageContent.WebPageToContainText BrowserInstance: sei Text: $'''Controle de Processos''') WAIT 4 # Envia tecla "Esc" para garantir que qualquer mensagem aberta no início do SEI seja fechada. MouseAndKeyboard.SendKeys.FocusAndSendKeysByInstanceOrHandle WindowInstance: sei TextToSend: $'''{Escape}''' DelayBetweenKeystrokes: 150 SendTextAsHardwareKeys: True MouseAndKeyboard.SendKeys.FocusAndSendKeysByInstanceOrHandle WindowInstance: sei TextToSend: $'''{Escape}''' DelayBetweenKeystrokes: 150 SendTextAsHardwareKeys: True