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/");
            }
        }
Beispiel #3
0
        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));
                }
            }
        }