Boa tarde. Estou treinando PageObjects com outros sites além do apresentado no curso e, neste caso, quero efetuar o cadastro desde a Home desde site http://agiletesters.com.br/ de forma automatizada. Bom, o problema é que algumas vezes ele funciona, mas, em determinado momento, ele não troca mais de página sem eu ter feito nenhuma alteração no código, e eu não sei por que isso acontece. Alguém pode me ajudar? Vou colocar abaixo todos os PageObjects do meu projeto.
Minha classe de testes:
[TestFixture]
public class Testes
{
private IWebDriver driver;
private TelaInicial usuario;
[SetUp]
public void SetUp()
{
driver = new ChromeDriver();
usuario = new TelaInicial(driver);
driver.Navigate().GoToUrl("http://agiletesters.com.br/");
}
[Test]
public void DeveEfetuarCadastroNoSiteAPartirDaTelaHome()
{
usuario.Novo()
.Cadastro("teste@teste.com", "teste123", "senha12345678", "senha12345678")
.Select();
}
}
Home Page
class TelaInicial
{
IWebDriver driver;
//criando o construtor com o driver pois se eh uma pagina ela deve abrir o driver
public TelaInicial(IWebDriver driver)
{
this.driver = driver;
}
public CadastroPage Novo()
{
driver.FindElement(By.LinkText("Cadastrar")).Click();
VisitaCadastro();
return new CadastroPage(driver);
}
private void VisitaCadastro()
{
driver.Navigate().GoToUrl("http://agiletesters.com.br/register");
}
}
Cadastro Page(onde acontece o erro)
class CadastroPage
{
IWebDriver driver;
public CadastroPage(IWebDriver driver)
{
this.driver = driver;
}
public AceitarPage Cadastro(string email, string username,string senha1,string senha2)
{
IWebElement emailC = driver.FindElement(By.Name("email"));
emailC.SendKeys(email);
IWebElement usernameC = driver.FindElement(By.Name("username"));
usernameC.SendKeys(username);
IWebElement password = driver.FindElement(By.Name("password"));
password.SendKeys(senha1);
IWebElement passwordconfirm = driver.FindElement(By.Name("password-confirm"));
passwordconfirm.SendKeys(senha2);
driver.FindElement(By.Id("register")).Click();
Visita();
return new AceitarPage(driver);
}
private void Visita()
{
driver.Navigate().GoToUrl("http://agiletesters.com.br/register/complete?registered=true");
}
}
O erro ocorre no Navigate() desta page, pois ele não avança para a proxima pagina que seria a de aceitar as condições e termos de uso do site.
Aceitar Page
class AceitarPage
{
IWebDriver driver;
public AceitarPage(IWebDriver driver)
{
this.driver = driver;
}
public void Select()
{
driver.FindElement(By.Name("gdpr_agree_data")).Click();
driver.FindElement(By.Name("gdpr_agree_email")).Click();
IWebElement submit = driver.FindElement(By.ClassName("btnbtn-primarybtn-block"));
submit.Click();
}
}