2
respostas

driver.PageSource.Contains("Nome obrigatorio") - Não funcionou no Chrome

No Chrome não acha a mensagem de erro ou não funciona o esse trecho de código:

bool achouMensagemErro = driver.PageSource.Contains("Nome obrigatorio");

Assert.IsTrue(achouMensagemErro);

////
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using NUnit.Framework;
using TesteAutomatizado.pages;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;


namespace TesteAutomatizado.testes
{
    [TestFixture]
    class LeilaoSystemTest
    {
        private LeilaoPage leilao;
        [SetUp]

        public void Inicializa()
        {

            IWebDriver driver = new ChromeDriver();
            this.leilao = new LeilaoPage(driver);

            UsuarioPages usuario = new UsuarioPages(driver);

            usuario.Visita();

            usuario.Novo().Cadastra("Paulo Henrique", "paulo.henrique@olatudobem.com");



        }

        [Test]
        public void DeveCadastrarLeilao() 
        {

            IWebDriver driver = new ChromeDriver();

            leilao.Visita();

            leilao.Novo().Cadastra("", 123, "Paulo Henrique", true);

            //Assert.IsFalse(leilao.ExisteNaListagem("", 123, true));

            bool achouMensagemErro = driver.PageSource.Contains("Nome obrigatorio");

            Assert.IsTrue(achouMensagemErro);


        }
    }
}
2 respostas

Olá Mariano,

veja se executando o teste em debug passo a passo ele passa no teste. Um dos problemas que pode estar acontecendo é que antes de você verificar se a mensagem Nome obrigatorio aparece na página, ele tenta cadastrar o usuário. Provavelmente ele está verificando a mensagem antes de terminar a requisição.

Se for este mesmo o problema, na aula 6 deste curso você verá sobre o WebDriverWait que ajuda a resolver este problema de não esperar a requisição acabar.

obrigado.

Estava sendo aberto uma outra página, que de fato não tinha o texto. vlw