# O loop abaixo realiza todas as ações para cada linha da planilha. Caso o texto INSERIR DI NA PLATAFORMA na coluna nomeada ROBÔ - UPLOAD DE DI, ele fará o download da DI, do anexo e upload na Plataforma Digital. LOOP WHILE (linha_planilha) <= (linha_livre - 1) Excel.ReadFromExcel.ReadCell Instance: excel StartColumn: coluna_processo_sei StartRow: linha_planilha ReadAsText: False CellValue=> processo_sei Excel.ReadFromExcel.ReadCell Instance: excel StartColumn: coluna_robo StartRow: linha_planilha ReadAsText: False CellValue=> status_planilha IF Contains(status_planilha, $'''INSERIR DI NA PLATAFORMA''', True) THEN WebAutomation.Click.Click BrowserInstance: sei Control: appmask['Web Page \'h ... 91cce99462\'']['Input text \'txtPesquisaRapida\''] ClickType: WebAutomation.ClickType.LeftClick MouseClick: True WaitForPageToLoadTimeout: 60 MousePositionRelativeToElement: WebAutomation.RectangleEdgePoint.MiddleCenter OffsetX: 0 OffsetY: 0 WAIT 1 MouseAndKeyboard.SendKeys.FocusAndSendKeysByInstanceOrHandle WindowInstance: sei TextToSend: $'''%processo_sei%{Return}''' DelayBetweenKeystrokes: 20 SendTextAsHardwareKeys: False WAIT (WebAutomation.WaitForWebPageContent.WebPageToContainText BrowserInstance: sei Text: $'''Consultar Andamento''') WebAutomation.Click.Click BrowserInstance: sei Control: appmask['Web Page \'h ... 3bdf4e4d69\'']['Image \'Pesquisar no Processo\''] ClickType: WebAutomation.ClickType.LeftClick MouseClick: True WaitForPageToLoadTimeout: 60 MousePositionRelativeToElement: WebAutomation.RectangleEdgePoint.MiddleCenter OffsetX: 0 OffsetY: 0 WAIT (WebAutomation.WaitForWebPageContent.WebPageToContainText BrowserInstance: sei Text: $'''Pesquisar no Processo''') WebAutomation.ExecuteJavascript BrowserInstance: sei Javascript: $'''function ExecuteScript() { try { // Localiza o iframe na página principal var iframe = document.querySelector(\'iframe[id=\"ifrVisualizacao\"]\'); // Verifica se o iframe foi encontrado if (!iframe) { return \"iframe não encontrado na página.\"; } // Aguarda alguns segundos para garantir que o conteúdo do iframe tenha sido carregado setTimeout(function() { try { // Acessa o conteúdo do iframe var iframeDocument = iframe.contentWindow.document; // Verifica se o iframeDocument está acessível if (!iframeDocument) { console.log(\"Não foi possível acessar o conteúdo do iframe.\"); return; } // Seleciona o botão de escolha dentro do iframe, se necessário var botao = iframeDocument.querySelector(\'button[type=\"button\"][class=\"ms-choice\"]\'); if (botao) { console.log(\"Botão encontrado no iframe.\"); } else { console.log(\"Botão não encontrado.\"); } // Seleciona o checkbox dentro do iframe pelo valor var checkbox = iframeDocument.querySelector(\'input[type=\"checkbox\"][value=\"2333\"]\'); if (checkbox) { // Simula um clique no checkbox var clickEvent = new MouseEvent(\'click\', { view: window, bubbles: true, cancelable: true }); checkbox.dispatchEvent(clickEvent); console.log(\"Clique no checkbox com valor \'2333\' enviado com sucesso dentro do iframe.\"); } else { console.log(\"Checkbox com valor \'2333\' não encontrado dentro do iframe.\"); } } catch (error) { console.error(\"Erro ao acessar o conteúdo do iframe: \", error); } }, 5000); // Aguarda 5 segundos antes de tentar acessar o iframe (ajuste conforme necessário) } catch (error) { console.error(\"Erro ao executar o script: \", error.message); } } ''' WAIT 5 WebAutomation.Click.Click BrowserInstance: sei Control: appmask['Web Page \'h ... 62a651dcfd\'']['Input submit \'Pesquisar\''] ClickType: WebAutomation.ClickType.LeftClick MouseClick: True WaitForPageToLoadTimeout: 60 MousePositionRelativeToElement: WebAutomation.RectangleEdgePoint.MiddleCenter OffsetX: 0 OffsetY: 0 # O loop abaixo aguarda que a página da Web seja carregada completamente. LOOP loop_aguardar FROM 1 TO 1000 STEP 1 IF (WebAutomation.IfWebPageContains.WebPageContainsText BrowserInstance: sei Text: $'''Ver Critérios de Pesquisa''') THEN SET pagina TO $'''OK''' END IF (WebAutomation.IfWebPageContains.WebPageContainsText BrowserInstance: sei Text: $'''O Subsecretário da Receita Estadual''') THEN SET pagina TO $'''OK''' END IF Contains(pagina, $'''OK''', False) THEN EXIT LOOP END END # A ações abaixo fazem o download das DIs e Anexos IF (WebAutomation.IfWebPageContains.WebPageContainsText BrowserInstance: sei Text: $'''O Subsecretário da Receita Estadual''') THEN WebAutomation.Click.Click BrowserInstance: sei Control: appmask['Web Page \'h ... cbdff4a274\'']['Image \'Gerar Arquivo PDF do Documento\''] ClickType: WebAutomation.ClickType.LeftClick MouseClick: True WaitForPageToLoadTimeout: 60 MousePositionRelativeToElement: WebAutomation.RectangleEdgePoint.MiddleCenter OffsetX: 0 OffsetY: 0 WAIT (WebAutomation.WaitForWebPageContent.WebPageToContainText BrowserInstance: sei Text: $'''Gerar Arquivo PDF''') WebAutomation.Click.Click BrowserInstance: sei Control: appmask['Web Page \'h ... cbdff4a274\'']['Button \'Gerar\''] ClickType: WebAutomation.ClickType.LeftClick MouseClick: True WaitForPageToLoadTimeout: 60 MousePositionRelativeToElement: WebAutomation.RectangleEdgePoint.MiddleCenter OffsetX: 0 OffsetY: 0 WAIT 10 WebAutomation.Click.Click BrowserInstance: sei Control: appmask['Web Page \'h ... 2ab17e6e72\'']['Button \'Fechar\''] ClickType: WebAutomation.ClickType.LeftClick MouseClick: True WaitForPageToLoadTimeout: 60 MousePositionRelativeToElement: WebAutomation.RectangleEdgePoint.MiddleCenter OffsetX: 0 OffsetY: 0 WAIT (WebAutomation.WaitForWebPageContent.WebPageToContainText BrowserInstance: sei Text: $'''SECULT - Declaração de Incentivo''') WebAutomation.Click.Click BrowserInstance: sei Control: appmask['Web Page \'h ... f6cd3cdc6c\'']['Image \'Gerenciar Liberações para Assinatura Externa\''] ClickType: WebAutomation.ClickType.LeftClick MouseClick: True WaitForPageToLoadTimeout: 60 MousePositionRelativeToElement: WebAutomation.RectangleEdgePoint.MiddleCenter OffsetX: 0 OffsetY: 0 WAIT (WebAutomation.WaitForWebPageContent.WebPageToContainText BrowserInstance: sei Text: $'''Gerenciar Assinaturas Externas''') WebAutomation.ExtractData.ExtractHtmlTable BrowserInstance: sei Control: $'''html > body > div:eq(0) > div > div:eq(1) > div:eq(1) > div:eq(1) > iframe > html > body > div:eq(0) > div > div > form > div:eq(9) > table''' ExtractionParameters: {[$'''Value #1''', $'''Usuário''', $'''Unidade''', $'''Liberação''', $'''Validade''', $'''Visualização''', $'''Utilização''', $'''Cancelamento''', $'''Ações'''], [$'''''', $'''''', $'''''', $'''''', $'''''', $'''''', $'''''', $'''''', $''''''] } PostProcessData: True TimeoutInSeconds: 60 ExtractedData=> endereco_email WAIT 1 Variables.RetrieveDataTableColumnIntoList DataTable: endereco_email ColumnNameOrIndex: 1 ColumnAsList=> endereco_email Variables.RemoveDuplicateItemsFromList List: endereco_email IgnoreCase: False WAIT 1 # A ações abaixo fazem a leitura da DI e armazenam as informações que serão utilizadas no momento do upload. Folder.GetFiles Folder: pasta_download FileFilter: $'''*.pdf''' IncludeSubfolders: False FailOnAccessDenied: True SortBy1: Folder.SortBy.CreationTime SortDescending1: True SortBy2: Folder.SortBy.NoSort SortDescending2: False SortBy3: Folder.SortBy.NoSort SortDescending3: False Files=> arquivo_di Pdf.ExtractTextFromPDF.ExtractText PDFFile: arquivo_di[0] DetectLayout: False ExtractedText=> texto_di Text.CropText.CropTextBetweenFlags Text: texto_di FromFlag: $'''Nº DO PROTOCOLO: ''' ToFlag: $'''D''' IgnoreCase: False CroppedText=> protocolo Text.Trim Text: protocolo TrimOption: Text.TrimOption.Both TrimmedText=> protocolo Text.CropText.CropTextBetweenFlags Text: texto_di FromFlag: $'''SECULT - ''' ToFlag: $'''Belo''' IgnoreCase: False CroppedText=> numero_di Text.Trim Text: numero_di TrimOption: Text.TrimOption.ToEnd TrimmedText=> numero_di Text.CropText.CropTextAfterFlag Text: numero_di FromFlag: $'''DECLARAÇÃO DE INCENTIVO SECULT/IFC ''' IgnoreCase: False CroppedText=> numero_di Text.CropText.CropTextBetweenFlags Text: texto_di FromFlag: $'''Documento assinado eletronicamente''' ToFlag: $'''A autenticidade''' IgnoreCase: False CroppedText=> data_homologacao_di Text.CropText.CropTextBetweenFlags Text: data_homologacao_di FromFlag: $'''Estadual''' ToFlag: $'''às''' IgnoreCase: False CroppedText=> data_homologacao_di Text.CropText.CropTextBetweenFlags Text: data_homologacao_di FromFlag: $'''em ''' ToFlag: $''',''' IgnoreCase: False CroppedText=> data_homologacao_di Text.CropText.CropTextBeforeFlag Text: texto_di ToFlag: $'''NOME DO PROJETO''' IgnoreCase: False CroppedText=> numero_anexo Text.CropText.CropTextAfterFlag Text: numero_anexo FromFlag: $'''proposta''' IgnoreCase: False CroppedText=> numero_anexo Text.CropText.CropTextBetweenFlags Text: numero_anexo FromFlag: $'''º''' ToFlag: $''',''' IgnoreCase: False CroppedText=> numero_anexo Text.Trim Text: numero_anexo TrimOption: Text.TrimOption.Both TrimmedText=> numero_anexo # O fluxo abaixo faz o download do anexo WebAutomation.Click.Click BrowserInstance: sei Control: appmask['Web Page \'h ... 91cce99462\'']['Input text \'txtPesquisaRapida\''] ClickType: WebAutomation.ClickType.LeftClick MouseClick: True WaitForPageToLoadTimeout: 60 MousePositionRelativeToElement: WebAutomation.RectangleEdgePoint.MiddleCenter OffsetX: 0 OffsetY: 0 WAIT 1 MouseAndKeyboard.SendKeys.FocusAndSendKeysByInstanceOrHandle WindowInstance: sei TextToSend: $'''%processo_sei%{Return}''' DelayBetweenKeystrokes: 20 SendTextAsHardwareKeys: False WAIT (WebAutomation.WaitForWebPageContent.WebPageToContainText BrowserInstance: sei Text: $'''Consultar Andamento''') WebAutomation.Click.Click BrowserInstance: sei Control: appmask['Web Page \'h ... 37ec53f880\'']['Image \'Gerar Arquivo PDF do Processo\''] ClickType: WebAutomation.ClickType.LeftClick MouseClick: True WaitForPageToLoadTimeout: 60 MousePositionRelativeToElement: WebAutomation.RectangleEdgePoint.MiddleCenter OffsetX: 0 OffsetY: 0 WAIT (WebAutomation.WaitForWebPageContent.WebPageToContainText BrowserInstance: sei Text: $'''Gerar Arquivo PDF do Processo''') WebAutomation.ExecuteJavascript BrowserInstance: sei Javascript: $'''function ExecuteScript() { try { // Localiza o iframe na página principal var iframe = document.querySelector(\'iframe[id=\"ifrVisualizacao\"]\'); // Verifica se o iframe foi encontrado if (iframe) { // Acessa o conteúdo do iframe var iframeDocument = iframe.contentWindow.document; // Seleciona o botão de rádio dentro do iframe var radioButton = iframeDocument.querySelector(\'input[id=\"optApenas\"][name=\"rdoTipo\"]\'); if (radioButton) { // Marca o botão como selecionado radioButton.checked = true; // Dispara o evento \'click\' para simular uma interação do usuário radioButton.click(); // Cria e dispara o evento \'change\' para carregar o menu com opções de restrito var changeEvent = new Event(\'change\', { bubbles: true }); radioButton.dispatchEvent(changeEvent); return \"Botão \'Restrito\' selecionado com sucesso dentro do iframe.\"; } else { return \"Botão de rádio \'Restrito\' não encontrado dentro do iframe.\"; } } else { return \"iframe não encontrado na página.\"; } } catch (error) { return \"Erro ao executar o script: \" + error.message; } }''' Result=> Result2 WAIT 1 WebAutomation.ExecuteJavascript BrowserInstance: sei Javascript: $'''function ExecuteScript() { try { // Localiza o iframe na página principal var iframe = document.querySelector(\'iframe[id=\"ifrVisualizacao\"]\'); // Verifica se o iframe foi encontrado if (iframe) { // Acessa o conteúdo do iframe var iframeDocument = iframe.contentWindow.document; // Seleciona o botão de rádio dentro do iframe var ImgButton = iframeDocument.querySelector(\'img[id=\"imgLupaDocumentosApenas\"]\'); if (ImgButton) { // Marca o botão como selecionado ImgButton.checked = true; // Dispara o evento \'click\' para simular uma interação do usuário ImgButton.click(); // Cria e dispara o evento \'change\' para carregar o menu com opções de restrito var changeEvent = new Event(\'change\', { bubbles: true }); ImgButton.dispatchEvent(changeEvent); return \"Botão \'Restrito\' selecionado com sucesso dentro do iframe.\"; } else { return \"Botão de rádio \'Restrito\' não encontrado dentro do iframe.\"; } } else { return \"iframe não encontrado na página.\"; } } catch (error) { return \"Erro ao executar o script: \" + error.message; } }''' Result=> Result2 WAIT 1 WAIT (WebAutomation.WaitForWebPageContent.WebPageToContainText BrowserInstance: sei Text: $'''Selecionar Documentos''') MouseAndKeyboard.SendKeys.FocusAndSendKeysByInstanceOrHandle WindowInstance: sei TextToSend: $'''%numero_anexo%{Return}''' DelayBetweenKeystrokes: 20 SendTextAsHardwareKeys: False WAIT (WebAutomation.WaitForWebPageContent.WebPageToContainText BrowserInstance: sei Text: $'''Lista de Documentos (1 registro)''') MouseAndKeyboard.SendKeys.FocusAndSendKeysByInstanceOrHandle WindowInstance: sei TextToSend: $'''{Tab: 4}{Space}{Tab: 3}{Return}''' DelayBetweenKeystrokes: 10 SendTextAsHardwareKeys: False WAIT 1 WebAutomation.Click.Click BrowserInstance: sei Control: appmask['Web Page \'h ... 37ec53f880\'']['Button \'Gerar\' 2'] ClickType: WebAutomation.ClickType.LeftClick MouseClick: True WaitForPageToLoadTimeout: 60 MousePositionRelativeToElement: WebAutomation.RectangleEdgePoint.MiddleCenter OffsetX: 0 OffsetY: 0 WAIT 10 WebAutomation.Click.Click BrowserInstance: sei Control: appmask['Web Page \'h ... a37674985a\'']['Image \'Controle de Processos\''] ClickType: WebAutomation.ClickType.LeftClick MouseClick: True WaitForPageToLoadTimeout: 60 MousePositionRelativeToElement: WebAutomation.RectangleEdgePoint.MiddleCenter OffsetX: 0 OffsetY: 0 # O código abaixo envia o email pelo SEI. WebAutomation.Click.Click BrowserInstance: sei Control: appmask['Web Page \'h ... 91cce99462\'']['Input text \'txtPesquisaRapida\''] ClickType: WebAutomation.ClickType.LeftClick MouseClick: True WaitForPageToLoadTimeout: 60 MousePositionRelativeToElement: WebAutomation.RectangleEdgePoint.MiddleCenter OffsetX: 0 OffsetY: 0 WAIT 1 MouseAndKeyboard.SendKeys.FocusAndSendKeysByInstanceOrHandle WindowInstance: sei TextToSend: $'''%processo_sei%{Return}''' DelayBetweenKeystrokes: 20 SendTextAsHardwareKeys: False WAIT (WebAutomation.WaitForWebPageContent.WebPageToContainText BrowserInstance: sei Text: $'''Consultar Andamento''') WebAutomation.Click.Click BrowserInstance: sei Control: appmask['Web Page \'h ... 83fae37588\'']['Image \'Enviar Correspondência Eletrônica\''] ClickType: WebAutomation.ClickType.LeftClick MouseClick: True WaitForPageToLoadTimeout: 60 MousePositionRelativeToElement: WebAutomation.RectangleEdgePoint.MiddleCenter OffsetX: 0 OffsetY: 0 DISABLE WebAutomation.LaunchChrome.AttachToForegroundChrome AttachTimeout: 5 TargetDesktop: $'''{\"DisplayName\":\"Computador local\",\"Route\":{\"ServerType\":\"Local\",\"ServerAddress\":\"\"},\"DesktopType\":\"local\"}''' BrowserInstance=> janela WebAutomation.LaunchEdge.AttachToTheForegroundEdge AttachTimeout: 5 TargetDesktop: $'''{\"DisplayName\":\"Computador local\",\"Route\":{\"ServerType\":\"Local\",\"ServerAddress\":\"\"},\"DesktopType\":\"local\"}''' BrowserInstance=> janela WAIT (WebAutomation.WaitForWebPageContent.WebPageToContainText BrowserInstance: janela Text: $'''Enviar Correspondência Eletrônica''') WebAutomation.Click.Click BrowserInstance: janela Control: appmask['Web Page \'h ... b8cc87e253\'']['Input text \'s2id_autogen1\''] ClickType: WebAutomation.ClickType.LeftClick MouseClick: True WaitForPageToLoadTimeout: 60 MousePositionRelativeToElement: WebAutomation.RectangleEdgePoint.MiddleCenter OffsetX: 0 OffsetY: 0 LOOP FOREACH destinatario IN endereco_email MouseAndKeyboard.SendKeys.FocusAndSendKeysByInstanceOrHandle WindowInstance: janela TextToSend: $'''%destinatario%{Return}''' DelayBetweenKeystrokes: 10 SendTextAsHardwareKeys: True MouseAndKeyboard.SendKeys.FocusAndSendKeysByInstanceOrHandle WindowInstance: janela TextToSend: $'''{Return}''' DelayBetweenKeystrokes: 10 SendTextAsHardwareKeys: True WAIT 1 WebAutomation.ExecuteJavascript BrowserInstance: janela Javascript: $'''function simularEnter() { // Obtendo o elemento de input pelo ID var inputElement = document.getElementById(\'s2id_autogen1\'); // Verificando se o elemento existe if (inputElement) { // Criando um evento \"keydown\" simulando a tecla Enter var evento = new KeyboardEvent(\'keydown\', { key: \'Enter\', // A tecla simulada code: \'Enter\', // Código da tecla keyCode: 13, // Código numérico da tecla Enter which: 13, // Outro código numérico da tecla Enter bubbles: true, // Permite a propagação do evento cancelable: true // Permite o cancelamento do evento }); // Disparando o evento no campo de input inputElement.dispatchEvent(evento); // Opcional: Disparando também o evento \"keyup\" se for necessário var keyUpEvent = new KeyboardEvent(\'keyup\', { key: \'Enter\', code: \'Enter\', keyCode: 13, which: 13, bubbles: true, cancelable: true }); inputElement.dispatchEvent(keyUpEvent); } else { console.error(\'Elemento de input não encontrado.\'); } } ''' Result=> Result WAIT 2 END WebAutomation.Click.Click BrowserInstance: janela Control: appmask['Web Page \'h ... b8cc87e253\'']['Input text \'txtAssunto\''] ClickType: WebAutomation.ClickType.LeftClick MouseClick: True WaitForPageToLoadTimeout: 60 MousePositionRelativeToElement: WebAutomation.RectangleEdgePoint.MiddleCenter OffsetX: 0 OffsetY: 0 MouseAndKeyboard.SendKeys.FocusAndSendKeysByInstanceOrHandle WindowInstance: janela TextToSend: $'''Declaração de Incentivo homologada{Return}''' DelayBetweenKeystrokes: 10 SendTextAsHardwareKeys: False WAIT 1 WebAutomation.Click.Click BrowserInstance: janela Control: appmask['Web Page \'h ... b8cc87e253\'']['Text area \'txaMensagem\''] ClickType: WebAutomation.ClickType.LeftClick MouseClick: True WaitForPageToLoadTimeout: 60 MousePositionRelativeToElement: WebAutomation.RectangleEdgePoint.MiddleCenter OffsetX: 0 OffsetY: 0 MouseAndKeyboard.SendKeys.FocusAndSendKeysByInstanceOrHandle WindowInstance: janela TextToSend: $'''A DECLARAÇÃO DE INCENTIVO (DI) do seu projeto CA %protocolo% foi HOMOLOGADA. Ou seja, ela foi oficialmente reconhecida e agora você pode avançar para as próximas etapas. A Declaração de Incentivo é digital e está disponível no Processo SEI %processo_sei% e na Plataforma Digital. Você pode acessá-la de duas formas: 1. Pelo processo SEI: {Space: 4}a. Acesse o SEI Usuário Externo e abra o processo indicado neste e-mail. {Space: 4}b. Localize e selecione o(s) documento(s) como o nome “Declaração de Incentivo”. 2. Pela Plataforma Digital: {Space: 4}a. Entre no projeto cultural, clique no passo “7 - Verificação” e localize o arquivo “Declaração de Incentivo Homologada”. Atenção! Caso seu projeto tenha MAIS DE UMA DECLARAÇÃO de incentivo: Elas estarão disponíveis na Plataforma Digital num único arquivo pdf. Enviamos os PRÓXIMOS PASSOS em anexo. Cordialmente, Diretoria de Fomento Cultural ''' DelayBetweenKeystrokes: 20 SendTextAsHardwareKeys: False WAIT 1 WebAutomation.Click.Click BrowserInstance: janela Control: appmask['Web Page \'h ... 3944bef711\'']['Label \'Anexar Arquivo...\''] ClickType: WebAutomation.ClickType.LeftClick MouseClick: True WaitForPageToLoadTimeout: 60 MousePositionRelativeToElement: WebAutomation.RectangleEdgePoint.MiddleCenter OffsetX: 0 OffsetY: 0 WAIT 3 MouseAndKeyboard.SendKeys.FocusAndSendKeys TextToSend: $'''%anexo_email%{Return}''' DelayBetweenKeystrokes: 60 SendTextAsHardwareKeys: False WAIT (WebAutomation.WaitForWebPageContent.WebPageToContainText BrowserInstance: janela Text: $'''Lista de Anexos''') WAIT 3 WebAutomation.Click.Click BrowserInstance: janela Control: appmask['Web Page \'h ... 3944bef711\'']['Label \'Anexar Arquivo...\''] ClickType: WebAutomation.ClickType.LeftClick MouseClick: True WaitForPageToLoadTimeout: 60 MousePositionRelativeToElement: WebAutomation.RectangleEdgePoint.MiddleCenter OffsetX: 0 OffsetY: 0 WAIT 3 MouseAndKeyboard.SendKeys.FocusAndSendKeys TextToSend: $'''%arquivo_di[0]%{Return}''' DelayBetweenKeystrokes: 60 SendTextAsHardwareKeys: False WAIT (WebAutomation.WaitForWebPageContent.WebPageToContainText BrowserInstance: janela Text: $'''Lista de Anexos''') **REGION Confirmação dos dados Display.ShowMessageDialog.ShowMessage Title: $'''VERIFICAÇÃO DO FLUXO''' Message: $'''Confira se o(s) endereço(s) de e-mail e o texto estão corretos. O próximo passo, será o envio do e-mail para o proponente e/ou representante legal.''' Icon: Display.Icon.Warning Buttons: Display.Buttons.OK DefaultButton: Display.DefaultButton.Button1 IsTopMost: False WAIT 5 DISABLE WebAutomation.ExecuteJavascript BrowserInstance: janela Javascript: $'''function ExecuteScript() { // Obtendo o botão pelo atributo \'name\' ou \'value\' var botaoEnviar = document.querySelector(\'button[name=\"btnEnviar\"]\'); // Verificando se o botão foi encontrado e então simulando o clique if (botaoEnviar) { botaoEnviar.click(); } else { console.log(\"Botão não encontrado.\"); } }''' Result=> Result2 DISABLE WAIT 5 DISABLE UIAutomation.CloseWindow.CloseByInstanceOrHandle WindowInstance: janela DISABLE WebAutomation.Click.Click BrowserInstance: sei Control: appmask['Web Page \'h ... a37674985a\'']['Image \'Controle de Processos\''] ClickType: WebAutomation.ClickType.LeftClick MouseClick: True WaitForPageToLoadTimeout: 60 MousePositionRelativeToElement: WebAutomation.RectangleEdgePoint.MiddleCenter OffsetX: 0 OffsetY: 0 **ENDREGION END IF (WebAutomation.IfWebPageContains.WebPageContainsText BrowserInstance: sei Text: $'''Ver Critérios de Pesquisa''') THEN WebAutomation.ExecuteJavascript BrowserInstance: sei Javascript: $'''function ExecuteScript() { try { // Localiza o iframe na página principal var iframe = document.querySelector(\'iframe[id=\"ifrVisualizacao\"]\'); // Verifica se o iframe foi encontrado if (!iframe) { return \"iframe não encontrado na página.\"; } // Acessa o documento do iframe (supondo que já está carregado) var iframeDoc = iframe.contentDocument || iframe.contentWindow.document; // Seleciona todos os elementos com a classe \"pesquisaTituloDireita\" var elementos = iframeDoc.querySelectorAll(\'.pesquisaTituloDireita\'); // Cria um array com os textos dos elementos var textos = Array.from(elementos).map(function(elemento) { return elemento.textContent.trim(); }); // Retorna os textos separados por vírgula return textos.join(\', \'); } catch (error) { console.log(\"Erro: \" + error.message); return \"Erro ao acessar o conteúdo do iframe.\"; } }''' Result=> lista_di Text.SplitText.SplitWithDelimiter Text: lista_di CustomDelimiter: $''', ''' IsRegEx: False Result=> lista_di LOOP FOREACH linha IN lista_di WebAutomation.Click.Click BrowserInstance: sei Control: appmask['Web Page \'h ... 125ca1c8ca\'']['Input text \'txtPesquisaRapida\' 2'] ClickType: WebAutomation.ClickType.LeftClick MouseClick: True WaitForPageToLoadTimeout: 60 MousePositionRelativeToElement: WebAutomation.RectangleEdgePoint.MiddleCenter OffsetX: 0 OffsetY: 0 MouseAndKeyboard.SendKeys.FocusAndSendKeysByInstanceOrHandle WindowInstance: sei TextToSend: $'''%linha%{Return}''' DelayBetweenKeystrokes: 10 SendTextAsHardwareKeys: False WAIT (WebAutomation.WaitForWebPageContent.WebPageToContainText BrowserInstance: sei Text: $'''SECULT - Declaração de Incentivo''') WebAutomation.Click.Click BrowserInstance: sei Control: appmask['Web Page \'h ... cbdff4a274\'']['Image \'Gerar Arquivo PDF do Documento\''] ClickType: WebAutomation.ClickType.LeftClick MouseClick: True WaitForPageToLoadTimeout: 60 MousePositionRelativeToElement: WebAutomation.RectangleEdgePoint.MiddleCenter OffsetX: 0 OffsetY: 0 WAIT (WebAutomation.WaitForWebPageContent.WebPageToContainText BrowserInstance: sei Text: $'''Gerar Arquivo PDF''') WebAutomation.Click.Click BrowserInstance: sei Control: appmask['Web Page \'h ... cbdff4a274\'']['Button \'Gerar\''] ClickType: WebAutomation.ClickType.LeftClick MouseClick: True WaitForPageToLoadTimeout: 60 MousePositionRelativeToElement: WebAutomation.RectangleEdgePoint.MiddleCenter OffsetX: 0 OffsetY: 0 WAIT 10 WebAutomation.Click.Click BrowserInstance: sei Control: appmask['Web Page \'h ... 2ab17e6e72\'']['Button \'Fechar\''] ClickType: WebAutomation.ClickType.LeftClick MouseClick: True WaitForPageToLoadTimeout: 60 MousePositionRelativeToElement: WebAutomation.RectangleEdgePoint.MiddleCenter OffsetX: 0 OffsetY: 0 WAIT (WebAutomation.WaitForWebPageContent.WebPageToContainText BrowserInstance: sei Text: $'''SECULT - Declaração de Incentivo''') # A ações abaixo fazem a leitura da DI e do Anexo Folder.GetFiles Folder: pasta_download FileFilter: $'''*.pdf''' IncludeSubfolders: False FailOnAccessDenied: True SortBy1: Folder.SortBy.CreationTime SortDescending1: True SortBy2: Folder.SortBy.NoSort SortDescending2: False SortBy3: Folder.SortBy.NoSort SortDescending3: False Files=> arquivo_di Pdf.ExtractTextFromPDF.ExtractText PDFFile: arquivo_di[0] DetectLayout: False ExtractedText=> texto_di Text.CropText.CropTextBetweenFlags Text: texto_di FromFlag: $'''Nº DO PROTOCOLO: ''' ToFlag: $'''D''' IgnoreCase: False CroppedText=> protocolo Text.Trim Text: protocolo TrimOption: Text.TrimOption.Both TrimmedText=> protocolo Text.CropText.CropTextBetweenFlags Text: texto_di FromFlag: $'''SECULT - ''' ToFlag: $'''Belo''' IgnoreCase: False CroppedText=> numero_di Text.Trim Text: numero_di TrimOption: Text.TrimOption.ToEnd TrimmedText=> numero_di Text.CropText.CropTextAfterFlag Text: numero_di FromFlag: $'''DECLARAÇÃO DE INCENTIVO SECULT/IFC ''' IgnoreCase: False CroppedText=> numero_di Text.CropText.CropTextBetweenFlags Text: texto_di FromFlag: $'''Documento assinado eletronicamente''' ToFlag: $'''A autenticidade''' IgnoreCase: False CroppedText=> data_homologacao_di Text.CropText.CropTextBetweenFlags Text: data_homologacao_di FromFlag: $'''Estadual''' ToFlag: $'''às''' IgnoreCase: False CroppedText=> data_homologacao_di Text.CropText.CropTextBetweenFlags Text: data_homologacao_di FromFlag: $'''em ''' ToFlag: $''',''' IgnoreCase: False CroppedText=> data_homologacao_di Text.CropText.CropTextBeforeFlag Text: texto_di ToFlag: $'''NOME DO PROJETO''' IgnoreCase: False CroppedText=> numero_anexo Text.CropText.CropTextAfterFlag Text: numero_anexo FromFlag: $'''proposta''' IgnoreCase: False CroppedText=> numero_anexo Text.CropText.CropTextBetweenFlags Text: numero_anexo FromFlag: $'''º''' ToFlag: $''',''' IgnoreCase: False CroppedText=> numero_anexo Text.Trim Text: numero_anexo TrimOption: Text.TrimOption.Both TrimmedText=> numero_anexo # O fluxo abaixo faz o download do anexo WebAutomation.Click.Click BrowserInstance: sei Control: appmask['Web Page \'h ... 91cce99462\'']['Input text \'txtPesquisaRapida\''] ClickType: WebAutomation.ClickType.LeftClick MouseClick: True WaitForPageToLoadTimeout: 60 MousePositionRelativeToElement: WebAutomation.RectangleEdgePoint.MiddleCenter OffsetX: 0 OffsetY: 0 WAIT 1 MouseAndKeyboard.SendKeys.FocusAndSendKeysByInstanceOrHandle WindowInstance: sei TextToSend: $'''%processo_sei%{Return}''' DelayBetweenKeystrokes: 20 SendTextAsHardwareKeys: False WAIT (WebAutomation.WaitForWebPageContent.WebPageToContainText BrowserInstance: sei Text: $'''Consultar Andamento''') WebAutomation.Click.Click BrowserInstance: sei Control: appmask['Web Page \'h ... 37ec53f880\'']['Image \'Gerar Arquivo PDF do Processo\''] ClickType: WebAutomation.ClickType.LeftClick MouseClick: True WaitForPageToLoadTimeout: 60 MousePositionRelativeToElement: WebAutomation.RectangleEdgePoint.MiddleCenter OffsetX: 0 OffsetY: 0 WAIT (WebAutomation.WaitForWebPageContent.WebPageToContainText BrowserInstance: sei Text: $'''Gerar Arquivo PDF do Processo''') WebAutomation.ExecuteJavascript BrowserInstance: sei Javascript: $'''function ExecuteScript() { try { // Localiza o iframe na página principal var iframe = document.querySelector(\'iframe[id=\"ifrVisualizacao\"]\'); // Verifica se o iframe foi encontrado if (iframe) { // Acessa o conteúdo do iframe var iframeDocument = iframe.contentWindow.document; // Seleciona o botão de rádio dentro do iframe var radioButton = iframeDocument.querySelector(\'input[id=\"optApenas\"][name=\"rdoTipo\"]\'); if (radioButton) { // Marca o botão como selecionado radioButton.checked = true; // Dispara o evento \'click\' para simular uma interação do usuário radioButton.click(); // Cria e dispara o evento \'change\' para carregar o menu com opções de restrito var changeEvent = new Event(\'change\', { bubbles: true }); radioButton.dispatchEvent(changeEvent); return \"Botão \'Restrito\' selecionado com sucesso dentro do iframe.\"; } else { return \"Botão de rádio \'Restrito\' não encontrado dentro do iframe.\"; } } else { return \"iframe não encontrado na página.\"; } } catch (error) { return \"Erro ao executar o script: \" + error.message; } }''' Result=> Result2 WAIT 1 WebAutomation.ExecuteJavascript BrowserInstance: sei Javascript: $'''function ExecuteScript() { try { // Localiza o iframe na página principal var iframe = document.querySelector(\'iframe[id=\"ifrVisualizacao\"]\'); // Verifica se o iframe foi encontrado if (iframe) { // Acessa o conteúdo do iframe var iframeDocument = iframe.contentWindow.document; // Seleciona o botão de rádio dentro do iframe var ImgButton = iframeDocument.querySelector(\'img[id=\"imgLupaDocumentosApenas\"]\'); if (ImgButton) { // Marca o botão como selecionado ImgButton.checked = true; // Dispara o evento \'click\' para simular uma interação do usuário ImgButton.click(); // Cria e dispara o evento \'change\' para carregar o menu com opções de restrito var changeEvent = new Event(\'change\', { bubbles: true }); ImgButton.dispatchEvent(changeEvent); return \"Botão \'Restrito\' selecionado com sucesso dentro do iframe.\"; } else { return \"Botão de rádio \'Restrito\' não encontrado dentro do iframe.\"; } } else { return \"iframe não encontrado na página.\"; } } catch (error) { return \"Erro ao executar o script: \" + error.message; } }''' Result=> Result2 WAIT 1 WAIT (WebAutomation.WaitForWebPageContent.WebPageToContainText BrowserInstance: sei Text: $'''Selecionar Documentos''') MouseAndKeyboard.SendKeys.FocusAndSendKeysByInstanceOrHandle WindowInstance: sei TextToSend: $'''%numero_anexo%{Return}''' DelayBetweenKeystrokes: 20 SendTextAsHardwareKeys: False WAIT (WebAutomation.WaitForWebPageContent.WebPageToContainText BrowserInstance: sei Text: $'''Lista de Documentos (1 registro)''') MouseAndKeyboard.SendKeys.FocusAndSendKeysByInstanceOrHandle WindowInstance: sei TextToSend: $'''{Tab: 4}{Space}{Tab: 3}{Return}''' DelayBetweenKeystrokes: 10 SendTextAsHardwareKeys: False WAIT 2 WebAutomation.Click.Click BrowserInstance: sei Control: appmask['Web Page \'h ... 37ec53f880\'']['Button \'Gerar\' 2'] ClickType: WebAutomation.ClickType.LeftClick MouseClick: True WaitForPageToLoadTimeout: 60 MousePositionRelativeToElement: WebAutomation.RectangleEdgePoint.MiddleCenter OffsetX: 0 OffsetY: 0 WAIT 10 WebAutomation.Click.Click BrowserInstance: sei Control: appmask['Web Page \'h ... 2ab17e6e72\'']['Button \'Fechar\''] ClickType: WebAutomation.ClickType.LeftClick MouseClick: True WaitForPageToLoadTimeout: 60 MousePositionRelativeToElement: WebAutomation.RectangleEdgePoint.MiddleCenter OffsetX: 0 OffsetY: 0 WAIT 2 IF data_homologacao = data_homologacao_di THEN WebAutomation.Click.Click BrowserInstance: sei Control: appmask['Web Page \'h ... 91cce99462\'']['Input text \'txtPesquisaRapida\''] ClickType: WebAutomation.ClickType.LeftClick MouseClick: True WaitForPageToLoadTimeout: 60 MousePositionRelativeToElement: WebAutomation.RectangleEdgePoint.MiddleCenter OffsetX: 0 OffsetY: 0 WAIT 1 MouseAndKeyboard.SendKeys.FocusAndSendKeysByInstanceOrHandle WindowInstance: sei TextToSend: $'''%linha%{Return}''' DelayBetweenKeystrokes: 20 SendTextAsHardwareKeys: False WAIT (WebAutomation.WaitForWebPageContent.WebPageToContainText BrowserInstance: sei Text: $'''SECULT - Declaração de Incentivo''') WebAutomation.Click.Click BrowserInstance: sei Control: appmask['Web Page \'h ... f6cd3cdc6c\'']['Image \'Gerenciar Liberações para Assinatura Externa\''] ClickType: WebAutomation.ClickType.LeftClick MouseClick: True WaitForPageToLoadTimeout: 60 MousePositionRelativeToElement: WebAutomation.RectangleEdgePoint.MiddleCenter OffsetX: 0 OffsetY: 0 WAIT (WebAutomation.WaitForWebPageContent.WebPageToContainText BrowserInstance: sei Text: $'''Gerenciar Assinaturas Externas''') WebAutomation.ExtractData.ExtractHtmlTable BrowserInstance: sei Control: $'''html > body > div:eq(0) > div > div:eq(1) > div:eq(1) > div:eq(1) > iframe > html > body > div:eq(0) > div > div > form > div:eq(9) > table''' ExtractionParameters: {[$'''Value #1''', $'''Usuário''', $'''Unidade''', $'''Liberação''', $'''Validade''', $'''Visualização''', $'''Utilização''', $'''Cancelamento''', $'''Ações'''], [$'''''', $'''''', $'''''', $'''''', $'''''', $'''''', $'''''', $'''''', $''''''] } PostProcessData: True TimeoutInSeconds: 60 ExtractedData=> endereco_email WAIT 1 Variables.RetrieveDataTableColumnIntoList DataTable: endereco_email ColumnNameOrIndex: 1 ColumnAsList=> endereco_email Variables.RemoveDuplicateItemsFromList List: endereco_email IgnoreCase: False WAIT 1 # O código abaixo envia o email pelo SEI. WebAutomation.Click.Click BrowserInstance: sei Control: appmask['Web Page \'h ... 91cce99462\'']['Input text \'txtPesquisaRapida\''] ClickType: WebAutomation.ClickType.LeftClick MouseClick: True WaitForPageToLoadTimeout: 60 MousePositionRelativeToElement: WebAutomation.RectangleEdgePoint.MiddleCenter OffsetX: 0 OffsetY: 0 WAIT 1 MouseAndKeyboard.SendKeys.FocusAndSendKeysByInstanceOrHandle WindowInstance: sei TextToSend: $'''%processo_sei%{Return}''' DelayBetweenKeystrokes: 20 SendTextAsHardwareKeys: False WAIT (WebAutomation.WaitForWebPageContent.WebPageToContainText BrowserInstance: sei Text: $'''Consultar Andamento''') WebAutomation.Click.Click BrowserInstance: sei Control: appmask['Web Page \'h ... 83fae37588\'']['Image \'Enviar Correspondência Eletrônica\''] ClickType: WebAutomation.ClickType.LeftClick MouseClick: True WaitForPageToLoadTimeout: 60 MousePositionRelativeToElement: WebAutomation.RectangleEdgePoint.MiddleCenter OffsetX: 0 OffsetY: 0 DISABLE WebAutomation.LaunchChrome.AttachToForegroundChrome AttachTimeout: 5 TargetDesktop: $'''{\"DisplayName\":\"Computador local\",\"Route\":{\"ServerType\":\"Local\",\"ServerAddress\":\"\"},\"DesktopType\":\"local\"}''' BrowserInstance=> janela WebAutomation.LaunchEdge.AttachToTheForegroundEdge AttachTimeout: 5 TargetDesktop: $'''{\"DisplayName\":\"Computador local\",\"Route\":{\"ServerType\":\"Local\",\"ServerAddress\":\"\"},\"DesktopType\":\"local\"}''' BrowserInstance=> janela WAIT (WebAutomation.WaitForWebPageContent.WebPageToContainText BrowserInstance: janela Text: $'''Enviar Correspondência Eletrônica''') WebAutomation.Click.Click BrowserInstance: janela Control: appmask['Web Page \'h ... b8cc87e253\'']['Input text \'s2id_autogen1\''] ClickType: WebAutomation.ClickType.LeftClick MouseClick: True WaitForPageToLoadTimeout: 60 MousePositionRelativeToElement: WebAutomation.RectangleEdgePoint.MiddleCenter OffsetX: 0 OffsetY: 0 LOOP FOREACH destinatario IN endereco_email MouseAndKeyboard.SendKeys.FocusAndSendKeysByInstanceOrHandle WindowInstance: janela TextToSend: $'''%destinatario%{Return}''' DelayBetweenKeystrokes: 10 SendTextAsHardwareKeys: True MouseAndKeyboard.SendKeys.FocusAndSendKeysByInstanceOrHandle WindowInstance: janela TextToSend: $'''{Return}''' DelayBetweenKeystrokes: 10 SendTextAsHardwareKeys: True WAIT 1 WebAutomation.ExecuteJavascript BrowserInstance: janela Javascript: $'''function simularEnter() { // Obtendo o elemento de input pelo ID var inputElement = document.getElementById(\'s2id_autogen1\'); // Verificando se o elemento existe if (inputElement) { // Criando um evento \"keydown\" simulando a tecla Enter var evento = new KeyboardEvent(\'keydown\', { key: \'Enter\', // A tecla simulada code: \'Enter\', // Código da tecla keyCode: 13, // Código numérico da tecla Enter which: 13, // Outro código numérico da tecla Enter bubbles: true, // Permite a propagação do evento cancelable: true // Permite o cancelamento do evento }); // Disparando o evento no campo de input inputElement.dispatchEvent(evento); // Opcional: Disparando também o evento \"keyup\" se for necessário var keyUpEvent = new KeyboardEvent(\'keyup\', { key: \'Enter\', code: \'Enter\', keyCode: 13, which: 13, bubbles: true, cancelable: true }); inputElement.dispatchEvent(keyUpEvent); } else { console.error(\'Elemento de input não encontrado.\'); } } ''' Result=> Result WAIT 2 END WAIT 1 WebAutomation.Click.Click BrowserInstance: janela Control: appmask['Web Page \'h ... b8cc87e253\'']['Input text \'txtAssunto\''] ClickType: WebAutomation.ClickType.LeftClick MouseClick: True WaitForPageToLoadTimeout: 60 MousePositionRelativeToElement: WebAutomation.RectangleEdgePoint.MiddleCenter OffsetX: 0 OffsetY: 0 MouseAndKeyboard.SendKeys.FocusAndSendKeysByInstanceOrHandle WindowInstance: janela TextToSend: $'''Declaração de Incentivo homologada{Return}''' DelayBetweenKeystrokes: 10 SendTextAsHardwareKeys: False WAIT 1 WebAutomation.Click.Click BrowserInstance: janela Control: appmask['Web Page \'h ... b8cc87e253\'']['Text area \'txaMensagem\''] ClickType: WebAutomation.ClickType.LeftClick MouseClick: True WaitForPageToLoadTimeout: 60 MousePositionRelativeToElement: WebAutomation.RectangleEdgePoint.MiddleCenter OffsetX: 0 OffsetY: 0 MouseAndKeyboard.SendKeys.FocusAndSendKeysByInstanceOrHandle WindowInstance: janela TextToSend: $'''A DECLARAÇÃO DE INCENTIVO (DI) do seu projeto CA %protocolo% foi HOMOLOGADA. Ou seja, ela foi oficialmente reconhecida e agora você pode avançar para as próximas etapas. A Declaração de Incentivo é digital e está disponível no Processo SEI %processo_sei% e na Plataforma Digital. Você pode acessá-la de duas formas: 1. Pelo processo SEI: {Space: 4}a. Acesse o SEI Usuário Externo e abra o processo indicado neste e-mail. {Space: 4}b. Localize e selecione o(s) documento(s) como o nome “Declaração de Incentivo”. 2. Pela Plataforma Digital: {Space: 4}a. Entre no projeto cultural, clique no passo “7 - Verificação” e localize o arquivo “Declaração de Incentivo Homologada”. Atenção! Caso seu projeto tenha MAIS DE UMA DECLARAÇÃO de incentivo: Elas estarão disponíveis na Plataforma Digital num único arquivo pdf. Enviamos os PRÓXIMOS PASSOS em anexo. Cordialmente, Diretoria de Fomento Cultural ''' DelayBetweenKeystrokes: 20 SendTextAsHardwareKeys: False WAIT 1 WebAutomation.Click.Click BrowserInstance: janela Control: appmask['Web Page \'h ... 3944bef711\'']['Label \'Anexar Arquivo...\''] ClickType: WebAutomation.ClickType.LeftClick MouseClick: True WaitForPageToLoadTimeout: 60 MousePositionRelativeToElement: WebAutomation.RectangleEdgePoint.MiddleCenter OffsetX: 0 OffsetY: 0 WAIT 3 MouseAndKeyboard.SendKeys.FocusAndSendKeys TextToSend: $'''%anexo_email%{Return}''' DelayBetweenKeystrokes: 60 SendTextAsHardwareKeys: False WAIT (WebAutomation.WaitForWebPageContent.WebPageToContainText BrowserInstance: janela Text: $'''Lista de Anexos''') WAIT 3 WebAutomation.Click.Click BrowserInstance: janela Control: appmask['Web Page \'h ... 3944bef711\'']['Label \'Anexar Arquivo...\''] ClickType: WebAutomation.ClickType.LeftClick MouseClick: True WaitForPageToLoadTimeout: 60 MousePositionRelativeToElement: WebAutomation.RectangleEdgePoint.MiddleCenter OffsetX: 0 OffsetY: 0 WAIT 3 MouseAndKeyboard.SendKeys.FocusAndSendKeys TextToSend: $'''%arquivo_di[0]%{Return}''' DelayBetweenKeystrokes: 60 SendTextAsHardwareKeys: False WAIT (WebAutomation.WaitForWebPageContent.WebPageToContainText BrowserInstance: janela Text: $'''Lista de Anexos''') **REGION Confirmação dos dados Display.ShowMessageDialog.ShowMessage Title: $'''VERIFICAÇÃO DO FLUXO''' Message: $'''Confira se o(s) endereço(s) de e-mail e o texto estão corretos. O próximo passo, será o envio do e-mail para o proponente e/ou representante legal.''' Icon: Display.Icon.Warning Buttons: Display.Buttons.OK DefaultButton: Display.DefaultButton.Button1 IsTopMost: False WAIT 5 DISABLE WebAutomation.ExecuteJavascript BrowserInstance: janela Javascript: $'''function ExecuteScript() { // Obtendo o botão pelo atributo \'name\' ou \'value\' var botaoEnviar = document.querySelector(\'button[name=\"btnEnviar\"]\'); // Verificando se o botão foi encontrado e então simulando o clique if (botaoEnviar) { botaoEnviar.click(); } else { console.log(\"Botão não encontrado.\"); } }''' Result=> Result2 DISABLE WAIT 5 DISABLE UIAutomation.CloseWindow.CloseByInstanceOrHandle WindowInstance: janela **ENDREGION END END WebAutomation.Click.Click BrowserInstance: sei Control: appmask['Web Page \'h ... a37674985a\'']['Image \'Controle de Processos\''] ClickType: WebAutomation.ClickType.LeftClick MouseClick: True WaitForPageToLoadTimeout: 60 MousePositionRelativeToElement: WebAutomation.RectangleEdgePoint.MiddleCenter OffsetX: 0 OffsetY: 0 END # O fluxo abaixo mescla os arquivos PDF Folder.GetFiles Folder: pasta_download FileFilter: $'''*.pdf''' IncludeSubfolders: False FailOnAccessDenied: True SortBy1: Folder.SortBy.CreationTime SortDescending1: True SortBy2: Folder.SortBy.NoSort SortDescending2: False SortBy3: Folder.SortBy.NoSort SortDescending3: False Files=> pdfs Pdf.MergeFiles PDFFiles: pdfs MergedPDFPath: $'''%pasta_download%\\declaracao_de_incentivo_e_anexo.pdf''' IfFileExists: Pdf.IfFileExists.AddSequentialSuffix PasswordDelimiter: $''',''' MergedPDF=> download_di # O fluxo abaixo faz a leitura dos dados da última DI homologada Folder.GetFiles Folder: pasta_download FileFilter: $'''*.pdf''' IncludeSubfolders: False FailOnAccessDenied: True SortBy1: Folder.SortBy.CreationTime SortDescending1: False SortBy2: Folder.SortBy.NoSort SortDescending2: False SortBy3: Folder.SortBy.NoSort SortDescending3: False Files=> arquivo_di Pdf.ExtractTextFromPDF.ExtractText PDFFile: arquivo_di[0] DetectLayout: False ExtractedText=> texto_di Text.CropText.CropTextBetweenFlags Text: texto_di FromFlag: $'''Nº DO PROTOCOLO: ''' ToFlag: $'''D''' IgnoreCase: False CroppedText=> protocolo Text.Trim Text: protocolo TrimOption: Text.TrimOption.Both TrimmedText=> protocolo Text.CropText.CropTextBetweenFlags Text: texto_di FromFlag: $'''SECULT - ''' ToFlag: $'''Belo''' IgnoreCase: False CroppedText=> numero_di Text.Trim Text: numero_di TrimOption: Text.TrimOption.ToEnd TrimmedText=> numero_di Text.CropText.CropTextAfterFlag Text: numero_di FromFlag: $'''DECLARAÇÃO DE INCENTIVO SECULT/IFC ''' IgnoreCase: False CroppedText=> numero_di Text.CropText.CropTextBetweenFlags Text: texto_di FromFlag: $'''Documento assinado eletronicamente''' ToFlag: $'''A autenticidade''' IgnoreCase: False CroppedText=> data_homologacao_di Text.CropText.CropTextBetweenFlags Text: data_homologacao_di FromFlag: $'''Estadual''' ToFlag: $'''às''' IgnoreCase: False CroppedText=> data_homologacao_di Text.CropText.CropTextBetweenFlags Text: data_homologacao_di FromFlag: $'''em ''' ToFlag: $''',''' IgnoreCase: False CroppedText=> data_homologacao_di # O fluxo abaixo faz o upload do arquivo mesclado (DI+Anexo) na Plataforma Digital. WebAutomation.ExecuteJavascript BrowserInstance: plataforma Javascript: $'''function ExecuteScript() { // Seleciona o link pelo seu href const link = document.querySelector(\'a[href=\"http://200.198.28.211/incentivo/projetos/5\"]\'); // Verifica se o link foi encontrado e simula o clique if (link) { link.click(); } else { console.log(\"Link não encontrado.\"); } }''' WAIT (WebAutomation.WaitForWebPageContent.WebPageToContainText BrowserInstance: plataforma Text: $'''Filtrar:''') WebAutomation.PopulateTextField.PopulateTextFieldUsePhysicalKeyboard BrowserInstance: plataforma Control: appmask['Web Page \'http://200.198.28.211/incentivo/projetos/5\'']['Input search'] Text: protocolo Mode: WebAutomation.PopulateTextMode.Replace UnfocusAfterPopulate: True WaitForPageToLoadTimeout: 60 WAIT 1 IF (WebAutomation.IfWebPageContains.WebPageDoesNotContainText BrowserInstance: plataforma Text: $'''Não foram encontrados resultados''') THEN WAIT (WebAutomation.WaitForWebPageContent.WebPageToContainText BrowserInstance: plataforma Text: $'''Mostrando de 1 até 1 de 1 registros''') WebAutomation.ExecuteJavascript BrowserInstance: plataforma Javascript: $'''function ExecuteScript() { // Seleciona o elemento com title=\"Assumir\" e class=\"tip\" const assumirLink = document.querySelector(\'a[title=\"Assumir\"].tip\'); // Verifica se o elemento foi encontrado if (assumirLink) { // Simula um clique no elemento assumirLink.click(); console.log(\'Link clicado com sucesso!\'); } else { console.error(\'Elemento com title=\"Assumir\" e class=\"tip\" não encontrado.\'); } }''' WAIT (WebAutomation.WaitForWebPageContent.WebPageToContainText BrowserInstance: plataforma Text: $'''Você assumiu a análise do projeto''') WebAutomation.ExecuteJavascript BrowserInstance: plataforma Javascript: $'''function ExecuteScript() { // Seleciona o link pelo seu href const link = document.querySelector(\'a[href=\"http://200.198.28.211/incentivo/projetos/assumidos\"]\'); // Verifica se o link foi encontrado e simula o clique if (link) { link.click(); } else { console.log(\"Link não encontrado.\"); } }''' WAIT (WebAutomation.WaitForWebPageContent.WebPageToContainText BrowserInstance: plataforma Text: $'''Mostrando de 1 até 1 de 1 registros''') WebAutomation.ExecuteJavascript BrowserInstance: plataforma Javascript: $'''function ExecuteScript() { // Seleciona todos os elementos com title=\"Ver\" e class=\"tip\" const assumirLinks = document.querySelectorAll(\'a[title=\"Ver\"].tip\'); // Itera sobre cada elemento e clica if (assumirLinks.length > 0) { assumirLinks.forEach(link => link.click()); console.log(\'Todos os links foram clicados com sucesso!\'); } else { console.error(\'Nenhum elemento com title=\"Ver\" e class=\"tip\" foi encontrado.\'); } }''' WAIT (WebAutomation.WaitForWebPageContent.WebPageToContainText BrowserInstance: plataforma Text: $'''Adicionar Ocorrência''') WebAutomation.ExecuteJavascript BrowserInstance: plataforma Javascript: $'''function ExecuteScript() { // Seleciona o elemento com ID \"ocorrenciaprojeto_id\" não encontrado.\'); } }''' WAIT 1 # O código abaixo preenche o campo detalhamento, no momento de realizar o upload da DI. WebAutomation.Click.Click BrowserInstance: plataforma Control: appmask['Web Page \'h ... ocorrencia\'']['Text area \'descricao\''] ClickType: WebAutomation.ClickType.LeftClick MouseClick: True WaitForPageToLoadTimeout: 60 MousePositionRelativeToElement: WebAutomation.RectangleEdgePoint.MiddleCenter OffsetX: 0 OffsetY: 0 MouseAndKeyboard.SendKeys.FocusAndSendKeysByInstanceOrHandle WindowInstance: plataforma TextToSend: $'''Declaração de Incentivo{Space}%numero_di%{Oemcomma}{Space}homologada em{Space}%data_homologacao_di%{OemPeriod}{Return}Processo SEI com documentação completa:{Space}%processo_sei%{OemPeriod}''' DelayBetweenKeystrokes: 20 SendTextAsHardwareKeys: False WAIT 1 WebAutomation.Click.Click BrowserInstance: plataforma Control: appmask['Web Page \'h ... ocorrencia\'']['Input file \'arquivo\''] ClickType: WebAutomation.ClickType.LeftClick MouseClick: True WaitForPageToLoadTimeout: 60 MousePositionRelativeToElement: WebAutomation.RectangleEdgePoint.MiddleCenter OffsetX: 0 OffsetY: 0 WAIT 3 MouseAndKeyboard.SendKeys.FocusAndSendKeysByInstanceOrHandle WindowInstance: plataforma TextToSend: $'''%download_di%{Return}''' DelayBetweenKeystrokes: 20 SendTextAsHardwareKeys: False WAIT 1 Display.ShowMessageDialog.ShowMessage Title: $'''VERIFICAÇÃO DO FLUXO''' Message: $'''Confira se a(s) DI(s) e o(s) Anexo(s) estão corretos. O próximo passo, será o upload desses arquivos na Plataforma Digital. ''' Icon: Display.Icon.Warning Buttons: Display.Buttons.OK DefaultButton: Display.DefaultButton.Button1 IsTopMost: False WAIT 5 **REGION Confirmação dos dados DISABLE WebAutomation.Click.Click BrowserInstance: plataforma Control: appmask['Web Page \'h ... ocorrencia\' 2']['Button \'Atualizar ocorrência\''] ClickType: WebAutomation.ClickType.LeftClick MouseClick: True WaitForPageToLoadTimeout: 60 MousePositionRelativeToElement: WebAutomation.RectangleEdgePoint.MiddleCenter OffsetX: 0 OffsetY: 0 DISABLE WAIT (WebAutomation.WaitForWebPageContent.WebPageToContainText BrowserInstance: plataforma Text: $'''foi adicionada ao Projeto com sucesso''') **ENDREGION # O código abaixo revoga a análise do projeto. WebAutomation.ExecuteJavascript BrowserInstance: plataforma Javascript: $'''function ExecuteScript() { // Seleciona o link pelo seu href const link = document.querySelector(\'a[href=\"http://200.198.28.211/incentivo/projetos/assumidos\"]\'); // Verifica se o link foi encontrado e simula o clique if (link) { link.click(); } else { console.log(\"Link não encontrado.\"); } }''' WAIT (WebAutomation.WaitForWebPageContent.WebPageToContainText BrowserInstance: plataforma Text: $'''Mostrando de 1 até 1 de 1 registros''') WebAutomation.ExecuteJavascript BrowserInstance: plataforma Javascript: $'''function ExecuteScript() { // Seleciona o elemento com title=\"Revogar\" e class=\"tip\" const revogarLink = document.querySelector(\'a[title=\"Revogar\"].tip\'); // Verifica se o elemento foi encontrado if (revogarLink) { // Simula um clique no elemento revogarLink.click(); console.log(\'Link clicado com sucesso!\'); } else { console.error(\'Elemento com title=\"Revogar\" e class=\"tip\" não encontrado.\'); } }''' WAIT (WebAutomation.WaitForWebPageContent.WebPageToContainText BrowserInstance: plataforma Text: $'''Você revogou a análise do projeto''') END IF (WebAutomation.IfWebPageContains.WebPageContainsText BrowserInstance: plataforma Text: $'''Não foram encontrados resultados''') THEN WebAutomation.ExecuteJavascript BrowserInstance: plataforma Javascript: $'''function ExecuteScript() { // Seleciona o link pelo seu href const link = document.querySelector(\'a[href=\"http://200.198.28.211/incentivo/projetos/6\"]\'); // Verifica se o link foi encontrado e simula o clique if (link) { link.click(); } else { console.log(\"Link não encontrado.\"); } }''' WAIT (WebAutomation.WaitForWebPageContent.WebPageToContainText BrowserInstance: plataforma Text: $'''Projetos \"Execução\"''') WAIT (WebAutomation.WaitForWebPageContent.WebPageToContainText BrowserInstance: plataforma Text: $'''Filtrar:''') WebAutomation.PopulateTextField.PopulateTextFieldUsePhysicalKeyboard BrowserInstance: plataforma Control: appmask['Web Page \'http://200.198.28.211/incentivo/projetos/5\'']['Input search'] Text: protocolo Mode: WebAutomation.PopulateTextMode.Replace UnfocusAfterPopulate: True WaitForPageToLoadTimeout: 60 WAIT (WebAutomation.WaitForWebPageContent.WebPageToContainText BrowserInstance: plataforma Text: $'''Mostrando de 1 até 1 de 1 registros''') WebAutomation.ExecuteJavascript BrowserInstance: plataforma Javascript: $'''function ExecuteScript() { // Seleciona o elemento com title=\"Assumir\" e class=\"tip\" const assumirLink = document.querySelector(\'a[title=\"Assumir\"].tip\'); // Verifica se o elemento foi encontrado if (assumirLink) { // Simula um clique no elemento assumirLink.click(); console.log(\'Link clicado com sucesso!\'); } else { console.error(\'Elemento com title=\"Assumir\" e class=\"tip\" não encontrado.\'); } }''' WAIT (WebAutomation.WaitForWebPageContent.WebPageToContainText BrowserInstance: plataforma Text: $'''Você assumiu a análise do projeto''') WebAutomation.ExecuteJavascript BrowserInstance: plataforma Javascript: $'''function ExecuteScript() { // Seleciona o link pelo seu href const link = document.querySelector(\'a[href=\"http://200.198.28.211/incentivo/projetos/assumidos\"]\'); // Verifica se o link foi encontrado e simula o clique if (link) { link.click(); } else { console.log(\"Link não encontrado.\"); } }''' WAIT (WebAutomation.WaitForWebPageContent.WebPageToContainText BrowserInstance: plataforma Text: $'''Mostrando de 1 até 1 de 1 registros''') WebAutomation.ExecuteJavascript BrowserInstance: plataforma Javascript: $'''function ExecuteScript() { // Seleciona todos os elementos com title=\"Ver\" e class=\"tip\" const assumirLinks = document.querySelectorAll(\'a[title=\"Ver\"].tip\'); // Itera sobre cada elemento e clica if (assumirLinks.length > 0) { assumirLinks.forEach(link => link.click()); console.log(\'Todos os links foram clicados com sucesso!\'); } else { console.error(\'Nenhum elemento com title=\"Ver\" e class=\"tip\" foi encontrado.\'); } }''' WAIT (WebAutomation.WaitForWebPageContent.WebPageToContainText BrowserInstance: plataforma Text: $'''Adicionar Ocorrência''') WebAutomation.ExecuteJavascript BrowserInstance: plataforma Javascript: $'''function ExecuteScript() { // Seleciona o elemento com ID \"ocorrenciaprojeto_id\" não encontrado.\'); } }''' WAIT 1 # O código abaixo preenche o campo detalhamento, no momento de realizar o upload da DI. WebAutomation.Click.Click BrowserInstance: plataforma Control: appmask['Web Page \'h ... ocorrencia\'']['Text area \'descricao\''] ClickType: WebAutomation.ClickType.LeftClick MouseClick: True WaitForPageToLoadTimeout: 60 MousePositionRelativeToElement: WebAutomation.RectangleEdgePoint.MiddleCenter OffsetX: 0 OffsetY: 0 MouseAndKeyboard.SendKeys.FocusAndSendKeysByInstanceOrHandle WindowInstance: plataforma TextToSend: $'''Declaração de Incentivo{Space}%numero_di%{Oemcomma}{Space}homologada em{Space}%data_homologacao_di%{OemPeriod}{Return}Processo SEI com documentação completa:{Space}%processo_sei%{OemPeriod}''' DelayBetweenKeystrokes: 20 SendTextAsHardwareKeys: False WAIT 1 WebAutomation.Click.Click BrowserInstance: plataforma Control: appmask['Web Page \'h ... ocorrencia\'']['Input file \'arquivo\''] ClickType: WebAutomation.ClickType.LeftClick MouseClick: True WaitForPageToLoadTimeout: 60 MousePositionRelativeToElement: WebAutomation.RectangleEdgePoint.MiddleCenter OffsetX: 0 OffsetY: 0 WAIT 3 MouseAndKeyboard.SendKeys.FocusAndSendKeysByInstanceOrHandle WindowInstance: plataforma TextToSend: $'''%download_di%{Return}''' DelayBetweenKeystrokes: 60 SendTextAsHardwareKeys: False WAIT 1 Display.ShowMessageDialog.ShowMessage Title: $'''VERIFICAÇÃO DO FLUXO''' Message: $'''Confira se a(s) DI(s) e o(s) Anexo(s) estão corretos. O próximo passo, será o upload desses arquivos na Plataforma Digital. ''' Icon: Display.Icon.Warning Buttons: Display.Buttons.OK DefaultButton: Display.DefaultButton.Button1 IsTopMost: False WAIT 5 **REGION Confirmação dos dados DISABLE WebAutomation.Click.Click BrowserInstance: plataforma Control: appmask['Web Page \'h ... ocorrencia\' 2']['Button \'Atualizar ocorrência\''] ClickType: WebAutomation.ClickType.LeftClick MouseClick: True WaitForPageToLoadTimeout: 60 MousePositionRelativeToElement: WebAutomation.RectangleEdgePoint.MiddleCenter OffsetX: 0 OffsetY: 0 DISABLE WAIT (WebAutomation.WaitForWebPageContent.WebPageToContainText BrowserInstance: plataforma Text: $'''foi adicionada ao Projeto com sucesso''') **ENDREGION # O código abaixo revoga a análise do projeto. WebAutomation.ExecuteJavascript BrowserInstance: plataforma Javascript: $'''function ExecuteScript() { // Seleciona o link pelo seu href const link = document.querySelector(\'a[href=\"http://200.198.28.211/incentivo/projetos/assumidos\"]\'); // Verifica se o link foi encontrado e simula o clique if (link) { link.click(); } else { console.log(\"Link não encontrado.\"); } }''' WAIT (WebAutomation.WaitForWebPageContent.WebPageToContainText BrowserInstance: plataforma Text: $'''Mostrando de 1 até 1 de 1 registros''') WebAutomation.ExecuteJavascript BrowserInstance: plataforma Javascript: $'''function ExecuteScript() { // Seleciona o elemento com title=\"Revogar\" e class=\"tip\" const revogarLink = document.querySelector(\'a[title=\"Revogar\"].tip\'); // Verifica se o elemento foi encontrado if (revogarLink) { // Simula um clique no elemento revogarLink.click(); console.log(\'Link clicado com sucesso!\'); } else { console.error(\'Elemento com title=\"Revogar\" e class=\"tip\" não encontrado.\'); } }''' WAIT (WebAutomation.WaitForWebPageContent.WebPageToContainText BrowserInstance: plataforma Text: $'''Você revogou a análise do projeto''') END Excel.WriteToExcel.WriteCell Instance: excel Value: data_homologacao_di Column: coluna_data_assinatura Row: linha_planilha Excel.WriteToExcel.WriteCell Instance: excel Value: $'''DI E ANEXO INSERIDOS NA PLATAFORMA''' Column: coluna_robo Row: linha_planilha Folder.GetFiles Folder: pasta_download FileFilter: $'''*.pdf''' IncludeSubfolders: False FailOnAccessDenied: True SortBy1: Folder.SortBy.NoSort SortDescending1: False SortBy2: Folder.SortBy.NoSort SortDescending2: False SortBy3: Folder.SortBy.NoSort SortDescending3: False Files=> Files File.Delete Files: Files WebAutomation.ExecuteJavascript BrowserInstance: sei Javascript: $'''function ExecuteScript() { // Encontra o elemento pelo ID var elemento = document.getElementById(\'lnkControleProcessos\'); // Simula um clique no elemento elemento.click(); }''' Result=> Result WAIT (WebAutomation.WaitForWebPageContent.WebPageToContainText BrowserInstance: sei Text: $'''Controle de Processos''') END Variables.IncreaseVariable Value: linha_planilha IncrementValue: 1 END Excel.SaveExcel.Save Instance: excel Display.ShowMessageDialog.ShowMessage Title: $'''Processo finalizado!''' Message: $'''As Declarações de Incentivo e Anexos foram inseridos na Plataforma Digital. O e-mail de notificação foi encaminhado via SEI!MG.''' Icon: Display.Icon.None Buttons: Display.Buttons.OK DefaultButton: Display.DefaultButton.Button1 IsTopMost: False # [ControlRepository][PowerAutomateDesktop] { "ControlRepositorySymbols": [ { "IgnoreImagesOnSerialization": false, "Repository": "{\r\n \"Screens\": [\r\n {\r\n \"Controls\": [\r\n {\r\n \"AutomationProtocol\": \"uia3\",\r\n \"ScreenShot\": null,\r\n \"ElementTypeName\": \"Input text\",\r\n \"InstanceId\": \"67ae9780-491f-4598-a9bf-8c389a42a383\",\r\n \"Name\": \"Input text 'txtPesquisaRapida'\",\r\n \"SelectorCount\": 1,\r\n \"Selectors\": [\r\n {\r\n \"CustomSelector\": null,\r\n \"Elements\": [\r\n {\r\n \"Attributes\": [\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Class\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": null\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Id\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": null\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": true,\r\n \"Name\": \"Ordinal\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": 0\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Title\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": null\r\n }\r\n ],\r\n \"CustomValue\": null,\r\n \"Ignore\": true,\r\n \"Name\": \"Body 'GOVERNO DO ESTADO DE MINAS GERAIS Versão d ... sso\\\"); Aguardando resposta para prosseguir'\",\r\n \"Tag\": \"body\"\r\n },\r\n {\r\n \"Attributes\": [\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Class\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": \"vh-100 vw-100 d-flex flex-column m-0 border-0\"\r\n },\r\n {\r\n \"Ignore\": false,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Id\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": \"divInfraAreaGlobal\"\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": true,\r\n \"Name\": \"Ordinal\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": 0\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Title\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": null\r\n }\r\n ],\r\n \"CustomValue\": null,\r\n \"Ignore\": true,\r\n \"Name\": \"Div 'GOVERNO DO ESTADO DE MINAS GERAIS Versão d ... = document.getElementById(\\\"divTabelaProcesso\\\");'\",\r\n \"Tag\": \"div\"\r\n },\r\n {\r\n \"Attributes\": [\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Class\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": \" navbar navbar-expand-md infraBarraNavegacao infraCorBarraSistema p-0\"\r\n },\r\n {\r\n \"Ignore\": false,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Id\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": \"navInfraBarraNavegacao\"\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": true,\r\n \"Name\": \"Ordinal\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": 0\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Title\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": null\r\n }\r\n ],\r\n \"CustomValue\": null,\r\n \"Ignore\": true,\r\n \"Name\": \"Navigation 'GOVERNO DO ESTADO DE MINAS GERAIS Versão d ... dos Santos (08605518650/SEJUSP) Configurações Sair'\",\r\n \"Tag\": \"nav\"\r\n },\r\n {\r\n \"Attributes\": [\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Class\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": \"flex-column w-100 h-100 infraBarraSistema\"\r\n },\r\n {\r\n \"Ignore\": false,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Id\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": \"divInfraBarraSistema\"\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": true,\r\n \"Name\": \"Ordinal\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": 0\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Title\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": null\r\n }\r\n ],\r\n \"CustomValue\": null,\r\n \"Ignore\": true,\r\n \"Name\": \"Div 'GOVERNO DO ESTADO DE MINAS GERAIS Versão d ... dos Santos (08605518650/SEJUSP) Configurações Sair'\",\r\n \"Tag\": \"div\"\r\n },\r\n {\r\n \"Attributes\": [\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Class\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": \"navbar m-0 p-0 infraCorBarraSistema collapse navbar-collapse align-self-center infraBarraSistemaPadrao\"\r\n },\r\n {\r\n \"Ignore\": false,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Id\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": \"divInfraBarraSistemaPadrao\"\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": true,\r\n \"Name\": \"Ordinal\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": 0\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Title\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": null\r\n }\r\n ],\r\n \"CustomValue\": null,\r\n \"Ignore\": true,\r\n \"Name\": \"Div 'SEJUSP/DSP Controle de Processos Novidades Raphael Pereira dos Santos (08605518650/SEJUSP) Configurações Sair'\",\r\n \"Tag\": \"div\"\r\n },\r\n {\r\n \"Attributes\": [\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Class\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": \"navbar-nav flex-grow-1 justify-content-end infraBarraSistemaPadraoD p-3 p-md-0\"\r\n },\r\n {\r\n \"Ignore\": false,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Id\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": \"divInfraBarraSistemaPadraoD\"\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": true,\r\n \"Name\": \"Ordinal\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": 0\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Title\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": null\r\n }\r\n ],\r\n \"CustomValue\": null,\r\n \"Ignore\": true,\r\n \"Name\": \"Div 'SEJUSP/DSP Controle de Processos Novidades Raphael Pereira dos Santos (08605518650/SEJUSP) Configurações Sair'\",\r\n \"Tag\": \"div\"\r\n },\r\n {\r\n \"Attributes\": [\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Class\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": \"nav-item px-1 media d-flex py-md-0 \"\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Id\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": null\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": true,\r\n \"Name\": \"Ordinal\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": 0\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Title\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": null\r\n }\r\n ],\r\n \"CustomValue\": null,\r\n \"Ignore\": true,\r\n \"Name\": \"Div\",\r\n \"Tag\": \"div\"\r\n },\r\n {\r\n \"Attributes\": [\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Action\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": \"https://www.sei.mg.gov.br/sei/controlador.php?acao=protocolo_pesquisa_rapida&infra_sistema=100000100&infra_unidade_atual=110001401&infra_hash=c1b2ec46a72cf9f13e413cca351d6d39bbe902d662cac09cf5160a0d9a9afef6\"\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Class\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": \"form-inline align-self-center w-100\"\r\n },\r\n {\r\n \"Ignore\": false,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Id\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": \"frmProtocoloPesquisaRapida\"\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Method\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": \"post\"\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Name\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": null\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": true,\r\n \"Name\": \"Ordinal\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": 0\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Title\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": null\r\n }\r\n ],\r\n \"CustomValue\": null,\r\n \"Ignore\": true,\r\n \"Name\": \"Form 'frmProtocoloPesquisaRapida'\",\r\n \"Tag\": \"form\"\r\n },\r\n {\r\n \"Attributes\": [\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Class\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": \"input-group\"\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Id\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": null\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": true,\r\n \"Name\": \"Ordinal\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": 0\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Title\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": null\r\n }\r\n ],\r\n \"CustomValue\": null,\r\n \"Ignore\": true,\r\n \"Name\": \"Div\",\r\n \"Tag\": \"div\"\r\n },\r\n {\r\n \"Attributes\": [\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Checked\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": \"false\"\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Class\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": \"form-control\"\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Disabled\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": \"false\"\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"FormAction\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": null\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"FormMethod\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": null\r\n },\r\n {\r\n \"Ignore\": false,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Id\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": \"txtPesquisaRapida\"\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Max\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": null\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Min\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": null\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Name\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": \"txtPesquisaRapida\"\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": true,\r\n \"Name\": \"Ordinal\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": 0\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"ReadOnly\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": \"false\"\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Required\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": \"false\"\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Src\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": null\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Step\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": null\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Title\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": null\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Type\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": \"text\"\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Value\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": null\r\n }\r\n ],\r\n \"CustomValue\": null,\r\n \"Ignore\": false,\r\n \"Name\": \"Input text 'txtPesquisaRapida'\",\r\n \"Tag\": \"input\"\r\n }\r\n ],\r\n \"Ignore\": false,\r\n \"ImageSelector\": null,\r\n \"IsCustom\": false,\r\n \"IsImageBased\": false,\r\n \"IsWindowsInstance\": false,\r\n \"Name\": \"Default Selector\",\r\n \"Properties\": []\r\n }\r\n ],\r\n \"Tag\": \"input\",\r\n \"ScreenshotPath\": \"controlRepo-screenshots\\\\e07fc43b-a2b5-4032-86d6-ff9d18755dd6.png\"\r\n }\r\n ],\r\n \"Handle\": {\r\n \"value\": 0\r\n },\r\n \"ProcessName\": null,\r\n \"ScreenShot\": null,\r\n \"ElementTypeName\": \"Web Page\",\r\n \"InstanceId\": \"239d21c1-e31e-4f61-96cf-d73997de894a\",\r\n \"Name\": \"Web Page 'h ... 91cce99462'\",\r\n \"SelectorCount\": 1,\r\n \"Selectors\": [\r\n {\r\n \"CustomSelector\": null,\r\n \"Elements\": [\r\n {\r\n \"Attributes\": [],\r\n \"CustomValue\": \"domcontainer\",\r\n \"Ignore\": false,\r\n \"Name\": \"Web Page 'https://www.sei.mg.gov.br/sei/controlador.php?acao=procedimento_controlar&acao_origem=principal&acao_retorno=principal&inicializando=1&infra_sistema=100000100&infra_unidade_atual=110001401&infra_hash=1d67ac92e9c7e1d8ed73fb574f1a0d2338eb271e890cc3a5c188b791cce99462'\",\r\n \"Tag\": \"domcontainer\"\r\n }\r\n ],\r\n \"Ignore\": false,\r\n \"ImageSelector\": null,\r\n \"IsCustom\": false,\r\n \"IsImageBased\": false,\r\n \"IsWindowsInstance\": false,\r\n \"Name\": \"Default Selector\",\r\n \"Properties\": []\r\n }\r\n ],\r\n \"Tag\": \"domcontainer\",\r\n \"ScreenshotPath\": \"controlRepo-screenshots\\\\a922b119-3975-474d-a709-108216096bdc.png\"\r\n },\r\n {\r\n \"Controls\": [\r\n {\r\n \"AutomationProtocol\": \"uia3\",\r\n \"ScreenShot\": null,\r\n \"ElementTypeName\": \"Image\",\r\n \"InstanceId\": \"790e13ef-5930-41cd-8146-d1b6fdec0da3\",\r\n \"Name\": \"Image 'Pesquisar no Processo'\",\r\n \"SelectorCount\": 1,\r\n \"Selectors\": [\r\n {\r\n \"CustomSelector\": null,\r\n \"Elements\": [\r\n {\r\n \"Attributes\": [\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Class\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": null\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Id\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": null\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": true,\r\n \"Name\": \"Ordinal\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": 0\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Title\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": null\r\n }\r\n ],\r\n \"CustomValue\": null,\r\n \"Ignore\": true,\r\n \"Name\": \"Body 'GOVERNO DO ESTADO DE MINAS GERAIS Versão d ... otstrap(\\\"procedimento_trabalhar\\\") Processo'\",\r\n \"Tag\": \"body\"\r\n },\r\n {\r\n \"Attributes\": [\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Class\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": \"vh-100 vw-100 d-flex flex-column m-0 border-0\"\r\n },\r\n {\r\n \"Ignore\": false,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Id\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": \"divInfraAreaGlobal\"\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": true,\r\n \"Name\": \"Ordinal\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": 0\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Title\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": null\r\n }\r\n ],\r\n \"CustomValue\": null,\r\n \"Ignore\": true,\r\n \"Name\": \"Div 'GOVERNO DO ESTADO DE MINAS GERAIS Versão d ... otstrap(\\\"procedimento_trabalhar\\\") Processo'\",\r\n \"Tag\": \"div\"\r\n },\r\n {\r\n \"Attributes\": [\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Class\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": \"w-100 flex-grow-1 d-flex flex-row divInfraAreaTela\"\r\n },\r\n {\r\n \"Ignore\": false,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Id\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": \"divInfraAreaTela\"\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": true,\r\n \"Name\": \"Ordinal\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": 0\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Title\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": null\r\n }\r\n ],\r\n \"CustomValue\": null,\r\n \"Ignore\": true,\r\n \"Name\": \"Div 'Acompanhamento Especial Base de Conhecimento Blocos ... otstrap(\\\"procedimento_trabalhar\\\") Processo'\",\r\n \"Tag\": \"div\"\r\n },\r\n {\r\n \"Attributes\": [\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Class\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": \" flex-grow-1 px-3\"\r\n },\r\n {\r\n \"Ignore\": false,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Id\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": \"divInfraAreaTelaD\"\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": true,\r\n \"Name\": \"Ordinal\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": 0\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Title\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": null\r\n }\r\n ],\r\n \"CustomValue\": null,\r\n \"Ignore\": true,\r\n \"Name\": \"Div 'Processo'\",\r\n \"Tag\": \"div\"\r\n },\r\n {\r\n \"Attributes\": [\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Class\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": \"w-100 d-flex flex-grow-1 flex-lg-row\"\r\n },\r\n {\r\n \"Ignore\": false,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Id\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": \"divConteudo\"\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": true,\r\n \"Name\": \"Ordinal\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": 0\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Title\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": null\r\n }\r\n ],\r\n \"CustomValue\": null,\r\n \"Ignore\": true,\r\n \"Name\": \"Div 'divConteudo'\",\r\n \"Tag\": \"div\"\r\n },\r\n {\r\n \"Attributes\": [\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Class\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": \"flex-grow-1 d-none d-lg-block h-100 divLinha\"\r\n },\r\n {\r\n \"Ignore\": false,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Id\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": \"divIframeVisualizacao\"\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": true,\r\n \"Name\": \"Ordinal\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": 0\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Title\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": null\r\n }\r\n ],\r\n \"CustomValue\": null,\r\n \"Ignore\": true,\r\n \"Name\": \"Div 'divIframeVisualizacao'\",\r\n \"Tag\": \"div\"\r\n },\r\n {\r\n \"Attributes\": [\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Class\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": \" w-100\"\r\n },\r\n {\r\n \"Ignore\": false,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Id\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": \"ifrVisualizacao\"\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Name\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": \"ifrVisualizacao\"\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": true,\r\n \"Name\": \"Ordinal\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": 0\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Src\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": \"controlador.php?acao=arvore_visualizar&acao_origem=procedimento_visualizar&id_procedimento=882837240&infra_sistema=100000100&infra_unidade_atual=110002496&infra_hash=410e4168abb0775bdd10f3860f471662c52b1aaeb1d5c00d5bdf207f9542e360\"\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"SrcDoc\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": null\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Title\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": null\r\n }\r\n ],\r\n \"CustomValue\": null,\r\n \"Ignore\": false,\r\n \"Name\": \"Inline frame 'ifrVisualizacao'\",\r\n \"Tag\": \"iframe\"\r\n },\r\n {\r\n \"Attributes\": [\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Class\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": null\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Id\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": null\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": true,\r\n \"Name\": \"Ordinal\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": 0\r\n },\r\n {\r\n \"Ignore\": true,\r\n \"IsOrdinal\": false,\r\n \"Name\": \"Title\",\r\n \"Operation\": \"EqualTo\",\r\n \"Value\": null\r\n }\r\n ],\r\n \"CustomValue\": null,\r\n \"Ignore\": true,\r\n \"Name\": \"HTML document 'SEI - Visualizar Árvore