/// <summary>
 /// Método para simular a digitação de um usuário e a navegação para o fluxo de recuperação de senha
 /// </summary>
 /// <param name="user">Parâmetro string com o usuário a ser digitado na caixa de texto para usuário na página de login</param>
 /// <returns>Retorna o objeto POM da página de recuperação de senha para continuar interações e/ou validações</returns>
 public RecuperarSenhaPage Digita_Usuario_E_Clica_Para_Recuperar_Senha(string user)
 {
     Input_Usuario.SendKeys(user);
     Bto_Login.Click();
     GerenciadorDoWebDriver.ProcuraElementoAguardandoAparecer(By.XPath("//a[text() = 'Perdeu a sua senha?']")).Click();
     return(new RecuperarSenhaPage());
 }
 /// <summary>
 /// Valida se existe algum parágrafo (html p tag) contendo uma mensagem
 /// </summary>
 /// <param name="mensagem">Mensagem a ser verificada a existência na página dentro de uma tag html de parágrafo</param>
 /// <returns>Retorna um bool true ou false para validações</returns>
 public bool Valida_Exibicao_De_Mensagem_De_Tentativa_De_Recuperacao_De_Senha(string mensagem)
 {
     return(GerenciadorDoWebDriver.ProcuraElementoAguardandoAparecer(By.XPath("//p[text()[contains(.,'" + mensagem + "')]]")).Displayed);
 }
 /// <summary>
 /// Verifica se está na página de recuperação de senha através de um texto h4 contendo 'Reajuste de Senha'
 /// </summary>
 /// <returns>Retorna um bool true ou false para validações</returns>
 public bool Valida_Se_Esta_Na_Pagina()
 {
     return(GerenciadorDoWebDriver.ProcuraElementoAguardandoAparecer(By.XPath("//h4[text()[contains(.,'Reajuste de Senha')]]")).Displayed);
 }
 /// <summary>
 /// Verifica a existência de um texto dentro de uma tag html p na página
 /// </summary>
 /// <param name="texto">Texto a ser procurado dentro de um tag html p (parágrafo)</param>
 /// <returns>Retorna um bool true ou false para validações</returns>
 public bool Valida_Exibicao_De_Texto_Com_Case_Sensitive(string texto)
 {
     return(GerenciadorDoWebDriver.ProcuraElementoAguardandoAparecer(By.XPath("//p[text()[contains(., '" + texto + "')]]")).Displayed);
 }
 /// <summary>
 /// Verifica através de alguns elementos específicos da página para validar se o usuário está logado
 /// </summary>
 /// <returns>Retornando um bool true ou false para validações</returns>
 public bool Valida_Que_Esta_Logado()
 {
     GerenciadorDoWebDriver.ProcuraElementoAguardandoAparecer(By.Id("project-name"));
     GerenciadorDoWebDriver.ExecutaJavaScript("document.getElementById('project-name').value = 'teste'");
     return(GerenciadorDoWebDriver.ProcuraElementoAguardandoAparecer(By.XPath("//span[@class='user-info' and text()='" + ConfigurationManager.AppSettings["USERNAME"] + "']")).Displayed);
 }
 /// <summary>
 /// <para>Verifica se está de fato na página de login do sistema através da</para>
 /// <para>existência de qualquer campo que tenha placeholder = 'Nome de usuário'</para>
 /// </summary>
 /// <returns>Retornando um bool true ou false para validações</returns>
 public bool Valida_Se_Esta_Na_Pagina()
 {
     return(GerenciadorDoWebDriver.ProcuraElementoAguardandoAparecer(By.XPath("//*[@placeholder = 'Nome de usuário']")).Displayed);
 }