def abrir_chrome(): chrexec = '"{}" --remote-debugging-port=9222 --user-data-dir="{}" {}'.format( CHREXEC, CHRPREFS, URLBASE) chrexec = [ CHREXEC, '--remote-debugging-port=9222', '--user-data-dir="{}"'.format(CHRPREFS), URLBASE ] Popen(chrexec, shell=False, stdout=PIPE).stdout msg = 'ROBÔ EM ESPERA\n\nFaça o login no sistema e responda ao captcha.\n' msg += 'Após o login, feche esta janela para iniciar a execução.\n' abrir_popup(msg)
def main(): res, v_chrome, v_driver = conferir_chrome() if not(res): msg = 'A versão do chromedriver({}) é diferente da versão do navegador({})'.format(v_driver, v_chrome) msg += '\nBaixe uma nova versão em https://chromedriver.chromium.org/downloads' abrir_popup(msg) return try: from nfp.tela_robo import TelaRobo robo = TelaRobo() robo.main() except Exception as e: print('Houve um erro ao executar a aplicação') print(str(e))
def extrair_resultados(codigo, ativa, dir_saida): data_hora = time.strftime("%Y%m%d-%H%M", time.gmtime()) msg = 'Tarefa completada. \nGravando planilha com os resultados...' abrir_popup(texto=msg, tempo=5) package = "nfp.servicos.controles.{}".format(codigo) ctrl = il.import_module(package) arquivo = 'result_' + str( ativa.id) + '_' + codigo + '_' + data_hora + '.xlsx' path_arquivo = os.path.join(dir_saida, arquivo) retorno = ctrl.extrair_dados_tarefa(ativa.id, path_arquivo) msg = '\n Tarefa não finalizada.' if retorno[0] == 0: if ctrl.finalizar_tarefa_ativa(): msg = '\n Tarefa finalizada.' texto = retorno[1] + msg abrir_popup(texto=texto)
def logar(self): elem = self.driver.find_element_by_id('UserName') elem.clear() elem.send_keys(self.usuario) time.sleep(1) elem = self.driver.find_element_by_id('Password') elem.clear() elem.send_keys(self.senha) time.sleep(1) logging.info('Aguardando resolução do Captcha') self.recaptcha.click() msg = 'ROBÔ EM ESPERA\nPor favor responda ao Captcha e em seguida feche' msg += '\nessa janela para o robô continuar sua execução.' abrir_popup(msg) time.sleep(1) elem = self.driver.find_element_by_id('Login') elem.click() try: elem = self.driver.find_element_by_id('ctl00_divCaixaPostal') logging.info('Página NFP aberta') except Exception as e: return 'ERRO login: {}'.format(e) return