def preencheDadosSER2(browser, cnpj, lista): try: browser.get('https://www.receita.pb.gov.br/ser/servirtual/documentos-fiscais/nfc-e/consulta-por-emitente') try: wait(browser, 2).until(EC.frame_to_be_available_and_switch_to_it("iframe")) element = browser.find_element_by_xpath('/html/body/table/tbody/tr[2]/td/form/table/tbody/tr[2]/td[2]/input[1]') element.clear() element.send_keys(getData.get_dataInicial(1)) element = browser.find_element_by_xpath('/html/body/table/tbody/tr[2]/td/form/table/tbody/tr[2]/td[2]/input[2]') element.clear() element.send_keys(getData.get_dataFinal(1)) browser.find_element_by_xpath('/html/body/table/tbody/tr[2]/td/form/table/tbody/tr[8]/td/table/tbody/tr[1]/td[2]/select/option[2]').click() wait(browser, 1).until(EC.frame_to_be_available_and_switch_to_it("cmpDest")) browser.find_element_by_xpath('/html/body/div/table/tbody/tr/td/form/table/tbody/tr[1]/td[2]/input').send_keys('123') browser.find_element_by_xpath('/html/body/div/table/tbody/tr/td/form/table/tbody/tr[1]/td[2]/input').clear() browser.switch_to.default_content() wait(browser, 1).until(EC.frame_to_be_available_and_switch_to_it("iframe")) wait(browser, 1).until(EC.frame_to_be_available_and_switch_to_it("cmpEmit")) browser.find_element_by_xpath('/html/body/div/table/tbody/tr/td/form/table/tbody/tr[1]/td[2]/input').clear() time.sleep(1) browser.find_element_by_xpath('/html/body/div/table/tbody/tr/td/form/table/tbody/tr[2]/td[2]/input[1]').clear() browser.find_element_by_xpath('/html/body/div/table/tbody/tr/td/form/table/tbody/tr[1]/td[2]/input').send_keys(lista[cnpj]) time.sleep(2) browser.find_element_by_xpath('/html/body/div/table/tbody/tr/td/form/table/tbody/tr[1]/td[3]/input').click() browser.switch_to.default_content() wait(browser, 2).until(EC.frame_to_be_available_and_switch_to_it("iframe")) browser.find_element_by_xpath('/html/body/table/tbody/tr[2]/td/form/table/tbody/tr[12]/td/select/option[3]').click() browser.find_element_by_xpath('/html/body/table/tbody/tr[2]/td/form/table/tbody/tr[12]/td/input[3]').click() time.sleep(3) try: texto = browser.switch_to_alert().getText() if(texto == 'Necessário informar o Emitente ou o Destinatário.'): browser.switch_to_alert().accept() time.sleep(1) browser.switch_to.default_content() wait(browser, 1).until(EC.frame_to_be_available_and_switch_to_it("iframe")) browser.find_element_by_xpath('/html/body/div/table/tbody/tr/td/form/table/tbody/tr[1]/td[3]/input').click() #Pesquisa time.sleep(5) browser.find_element_by_xpath('/html/body/table/tbody/tr[2]/td/form/table/tbody/tr[13]/td/input[4]').click() #Consultar time.sleep(3) except: pass x = 0 while (True): try: try: browser.find_element_by_xpath('/html/body/table/tbody/tr[2]/td/form/table/tbody/tr[13]/td/b/i/a') browser.switch_to.default_content() getSERXML2(browser, cnpj, lista) break except: browser.switch_to_alert().accept() caminhos.addCaminhoNFC('vazio') print("Sem acesso a essa área") break except: x = x + 1 time.sleep(2) if(x == 5): caminhos.addCaminhoNFC('vazio') print("Não era um alerta") break except: caminhos.addCaminhoNFC('vazio') print('Erro no preenchimento dos dados') except: caminhos.addCaminhoNFC('vazio') print('Erro no acesso a página') conteudo = "Sem acesso a página dos Documentos fiscais de " + lista[cnpj] + " ou a internet\n" relatorio.relatorioSER(conteudo) return cnpj
def getSERXML2(browser, cnpj, lista): start = True #Controla o acesso ao segundo while x = True #Controla o acesso ao terceiro while cont = 0 while(True): try: browser.get('https://www4.receita.pb.gov.br/atf/seg/SEGf_MinhasMensagens.do') time.sleep(4) break except: cont = cont + 1 if cont == 3: start = False x = False break print('Sem acesso a https://www4.receita.pb.gov.br/atf/seg/SEGf_MinhasMensagens.do') ## Clica na priemira mensagem ## while(start): try: browser.find_element_by_css_selector("body > form > div > table > tbody > tr:nth-child(3) > td:nth-child(4) > a").click() time.sleep(2) break except: pass ## Clica na mensagem do meio ## pare = 0 try: browser.find_element_by_xpath('/html/body/form/div/table/tbody/tr[5]/td[3]/a/img') except: try: browser.find_element_by_xpath('/html/body/form/div/table/tbody/tr[3]/td[3]') browser.find_element_by_xpath('/html/body/form/div/table/tbody/tr[5]/td[3]') browser.find_element_by_xpath('/html/body/form/div/table/tbody/tr[7]/td[3]') browser.find_element_by_xpath('/html/body/form/div/table/tbody/tr[9]/td[3]') pare = 17 except: pass while (x): try: try: browser.find_element_by_xpath('/html/body/form/div/table/tbody/tr[5]/td[3]/a/img') #garante que o clipe está lá browser.find_element_by_css_selector("body > form > div > table > tbody > tr:nth-child(5) > td:nth-child(4) > a").click() time.sleep(2) x = False except: pare = pare + 1 if pare == 18: break time.sleep(2) browser.find_element_by_name("btnNovas").click() #browser.find_element_by_xpath('/html/body/form/div/table/tbody/tr[12]/td/input[2]').click() time.sleep(10) print("mais uma") except: print("Não foi possível atualizar") time.sleep(1) break ## Faz o Download do XML ## try: download = browser.find_element_by_css_selector("body > table > tbody > tr:nth-child(2) > td > form > table > tbody > tr:nth-child(8) > td > a") download.click() time.sleep(2) caminho = caminhos.getCaminho(0) destino = caminho + getData.get_dataInicial(3) + '/' + lista[cnpj] + '/NFCe' time.sleep(3) extrairArq.extrair(caminho, destino) caminhos.addCaminhoNFC(destino) print("Download e extração dos arquivos de " + lista[cnpj] +" realizada") conteudo = "Download e extração dos arquivos de " + lista[cnpj] +" realizada\n" relatorio.relatorioSER(conteudo) except: caminhos.addCaminhoNFC('vazio') print('impossibilitado de fazer o download') conteudo = "impossibilitado de fazer o download de " + lista[cnpj] + "\n" relatorio.relatorioSER(conteudo)
def representarContri(browser, cnpj, senha, cnpjFormatado): while (True): pare = 0 while (True): try: try: browser.get( 'https://sispmjp.joaopessoa.pb.gov.br:8080/sispmjp/paginas/ds/DS_ConsultarNFSePrestador.jsf' ) time.sleep(1) browser.find_element_by_xpath( '//*[@id="form:dtComp_input"]').send_keys( getData.get_dataInicial(2)) time.sleep(1) browser.find_element_by_xpath( '//*[@id="form:compFim_input"]').send_keys( getData.get_dataFinal(2)) time.sleep(1) browser.find_element_by_xpath( '//*[@id="form:nrNfse"]').click() time.sleep(1) browser.find_element_by_xpath( '//*[@id="form:j_idt60"]').click() time.sleep(3) tempo = 0 while (True): try: elem = browser.find_element_by_xpath( '//*[@id="dataTable_data"]/tr/td') break except: if (tempo == 10): break time.sleep(3) tempo = tempo + 1 elemento = elem.text numeroNFS = 'string' try: numeroNFS = browser.find_element_by_xpath( '//*[@id="dataTable_data"]/tr[1]/td[1]').text except: pass if (elemento.isdigit() or numeroNFS.isdigit()): try: browser.find_element_by_xpath( '//*[@id="commandButton_exportar"]').click() time.sleep(3) caminho = caminhos.getCaminho(1).replace('\n', '') destino = caminho + getData.get_dataInicial( 3) + '/' + cnpj + '/Prestado' extrairArq.mover(caminho, destino, "Prestado") conteudo = "Download realizado: " + cnpj + "\n" relatorio.relatorioPftr(conteudo) #area.insert(END,conteudo) except: print( 'Não foi possível mover o arquivo do Prestador para a pasta' ) else: caminhos.addCaminhoPftrPrestado("vazio") except: caminhos.addCaminhoPftrPrestado("vazio") try: browser.get( 'https://sispmjp.joaopessoa.pb.gov.br:8080/sispmjp/paginas/ds/DS_ConsultarNFSeTomador.jsf' ) time.sleep(1) browser.find_element_by_xpath( '//*[@id="form:dtComp_input"]').send_keys( getData.get_dataInicial(2)) time.sleep(1) browser.find_element_by_xpath( '//*[@id="form:compFim_input"]').send_keys( getData.get_dataFinal(2)) time.sleep(1) browser.find_element_by_xpath( '//*[@id="form:nrNfse"]').click() time.sleep(1) browser.find_element_by_xpath( '//*[@id="form:j_idt60"]').click() time.sleep(3) tempo = 0 while (True): try: elem = browser.find_element_by_xpath( '//*[@id="dataTable_data"]/tr/td') break except: if (tempo == 10): break time.sleep(3) tempo = tempo + 1 elemento = elem.text try: mensagem = browser.find_element_by_xpath( '//*[@id="dataTable_data"]/tr[1]/td[2]/span').text except: pass # //*[@id="dataTable_data"]/tr[2]/td[2]/span if (elemento.isdigit() or mensagem.isdigit()): try: browser.find_element_by_xpath( '//*[@id="commandButton_exportar"]').click() time.sleep(3) caminho = caminhos.getCaminho(1).replace('\n', '') destino = caminho + getData.get_dataInicial( 3) + '/' + cnpj + '/Tomado' extrairArq.mover(caminho, destino, "Tomado") conteudo = "Download realizado: " + cnpj + "\n" relatorio.relatorioPftr(conteudo) #area.insert(END,conteudo) except: print( 'Não foi possível mover o arquivo do Tomador para a pasta' ) else: caminhos.addCaminhoPftrTomado("vazio") except: caminhos.addCaminhoPftrTomado("vazio") ## Sair da representação ## try: browser.find_element_by_xpath( '//*[@id="menu_topo"]/ul/li[6]/a"]').click() time.sleep(1) except: print('Não quer sair da representação') time.sleep(2) break #M D COMERCIO DE VEICULOS PEÇAS E SERVICOS LTDA #Não possui inscrição municipal except: pare = pare + 1 if pare == 2: print('Download não realizado: ' + cnpj) conteudo = "Download não realizado: " + cnpj + "\n" relatorio.relatorioPftr(conteudo) try: browser.find_element_by_xpath( '//*[@id="formAlterarSenha:continuar"]/span[2]' ).click() time.sleep(2) browser.find_element_by_xpath( '//*[@id="menu_topo"]/ul/li[6]/a').click() time.sleep(2) entrarNoSistema(browser, cnpjFormatado, senha) except: print('Não estava pedindo pra trocar de senha') break print('tentando de novo') break