private static string VersaoDriverChrome() { string pathChrome = @"C:\Program Files (x86)\Google\Chrome\Application\"; string versao = String.Empty; if (Directory.Exists(pathChrome)) { var dirs = Directory.GetDirectories(pathChrome); foreach (var x in dirs) { var folder = x.Replace(pathChrome, ""); if ((int)folder[0] >= 49 && (int)folder[0] <= 57) { versao = folder.Split('.')[0]; break; } } } if (String.IsNullOrEmpty(versao)) { LogService.AdicionarLog(new Response($"Utilizando Driver padrão", LevelLogEnum.Info)); } else { LogService.AdicionarLog(new Response($"Versão {versao} do Driver localizada", LevelLogEnum.Info)); } return(versao); }
private void BuscarVagas() { string response = String.Empty; foreach (var cargo in _dados.Cargos) { LogService.AdicionarLog(new Response($"Iniciando busca de vagas para o cargo {cargo}", LevelLogEnum.Info)); _webDriver.IncluirValor(By.Id("barraBusca"), cargo); LogService.AdicionarLog(new Response("Incluindo filtro para vagas em São Paulo", LevelLogEnum.Info)); _webDriver.ClicarBotao(By.Id("selectLocalidade")); _webDriver.ClicarBotao(By.XPath("//*[@id=\"select_Estado\"]/div/div[1]")); _webDriver.ClicarBotao(By.XPath("//*[@id=\"estado_id[]input\"]")); _webDriver.ClicarBotao(By.ClassName("btnOkSelectPlugin")); _webDriver.ClicarBotao(By.ClassName("btnOkLocalidade")); LogService.AdicionarLog(new Response("Filtro finalizado", LevelLogEnum.Info)); _webDriver.SubmeterBotao(By.ClassName("btnBuscar")); AguardarHtml(_dados.TimeOutAplicacao, By.ClassName("infos")); response = _webDriver.BuscarHtml(By.ClassName("infos"), "innerHTML"); if (response.Contains("Total de anúncios")) { LogService.AdicionarLog(new Response("Vagas encontradas", LevelLogEnum.Info)); if (!LogService.TemErros()) { EnviarCurriculo(); } else { LogService.AdicionarLog(new Response("Erro não previsto", LevelLogEnum.Erro)); } } else { LogService.AdicionarLog(new Response("Erro: Vagas não localizadas", LevelLogEnum.Erro)); } _webDriver.Navigate().GoToUrl("https://www.catho.com.br/area-candidato/"); } }
public bool Iniciar() { var retorno = false; try { retorno = Executar(); } catch (Exception ex) { LogService.AdicionarLog(new Response(ex.Message, LevelLogEnum.Erro)); } finally { Finalizar(); } return(retorno); }
private void RealizarLogin() { string response = String.Empty; LogService.AdicionarLog(new Response("Iniciando pagina de Login", LevelLogEnum.Info)); AguardarHtml(_dados.TimeOutAplicacao, By.ClassName("InputLabel-obg30c-0")); response = _webDriver.BuscarHtml(By.ClassName("InputLabel-obg30c-0"), "innerHTML"); if (response.Contains("Digite seu e-mail ou")) { LogService.AdicionarLog(new Response("Pagina de Login iniciado", LevelLogEnum.Info)); LogService.AdicionarLog(new Response("Inserindo Login e Senha", LevelLogEnum.Info)); _webDriver.IncluirValor(By.Name("email"), _dados.Login); _webDriver.IncluirValor(By.Name("password"), _dados.Senha); _webDriver.ClicarBotao(By.ClassName("Button__StyledButton-sc-1ovnfsw-1")); LogService.AdicionarLog(new Response("Logando..", LevelLogEnum.Info)); AguardarHtml(_dados.TimeOutAplicacao, By.ClassName("minhaConta")); response = _webDriver.BuscarHtml(By.ClassName("minhaConta"), "innerHTML"); if (response.ToUpper().Contains(_dados.NomeUsuario.ToUpper())) { LogService.AdicionarLog(new Response("Login efetuado com sucesso", LevelLogEnum.Info)); } else { LogService.AdicionarLog(new Response("Login não efetuado", LevelLogEnum.Erro)); } } else { LogService.AdicionarLog(new Response("Erro ao carregar página de Login", LevelLogEnum.Erro)); } }
private void EnviarCurriculo() { LogService.AdicionarLog(new Response($"Iniciando envio de vagas", LevelLogEnum.Info)); string response = String.Empty; List <Vaga> vagas = new List <Vaga>(); var elementosVaga = _webDriver.BuscarElementos(By.ClassName("boxVaga")); LogService.AdicionarLog(new Response($"Vagas selecionadas: {elementosVaga.Count}", LevelLogEnum.Info)); foreach (var vaga in elementosVaga) { LogService.AdicionarLog(new Response($"Pegando descrição da Vaga", LevelLogEnum.Info)); var abrirVaga = vaga.FindElement(By.ClassName("tres-pontos")); abrirVaga.Click(); var dadosVaga = RasparInformacoesVaga(vaga); var fecharVaga = vaga.FindElement(By.ClassName("closeVagButton")); fecharVaga.Click(); LogService.AdicionarLog(new Response($"Descrição coletada", LevelLogEnum.Info)); LogService.AdicionarLog(new Response($"Iniciando etapa final", LevelLogEnum.Info)); var botaoEnviar = vaga.FindElement(By.ClassName("btnEnviarCurriculo")); var textoBotao = botaoEnviar.GetAttribute("innerHTML"); if (textoBotao.Contains("enviar currículo")) { botaoEnviar.Click(); AguardarHtml(_dados.TimeOutAplicacao, By.ClassName("pergunta")); response = _webDriver.BuscarHtml(By.ClassName("pergunta"), "innerHTML"); LogService.AdicionarLog(new Response($"Incluindo resumo profissional", LevelLogEnum.Info)); if (response.Contains("Faço um pequeno texto sobre seu perfil pessoal e profissional")) { _webDriver.IncluirValor(By.XPath("//*[@id=\"enviarCurriculo\"]/section[2]/article/ol/li/textarea"), _dados.ResumoProfissional); var botoesModel = _webDriver.BuscarElementos(By.ClassName("containerNavigation")).First(); var submeterCurriculo = botoesModel.FindElement(By.ClassName("buttonAzulFlat")); submeterCurriculo.Click(); LogService.AdicionarLog(new Response($"Enviando Curriculo", LevelLogEnum.Info)); AguardarHtml(_dados.TimeOutAplicacao, By.ClassName("btnEnviarCurriculo")); var text = botaoEnviar.GetAttribute("innerHTML"); if (text.Contains("currículo enviado")) { LogService.AdicionarLog(new Response($"Curriculo enviado", LevelLogEnum.Info)); vagas.Add(dadosVaga); } } else { break; } } else if (textoBotao.Contains("vaga expirada")) { LogService.AdicionarLog(new Response($"Vaga Expirada: {dadosVaga.Titulo}", LevelLogEnum.Info)); } else { LogService.AdicionarLog(new Response($"Erro ao ler a vaga: {dadosVaga.Titulo}", LevelLogEnum.Erro)); } } }