Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Preenchendo e testando formulários - Referência de objeto não definida para uma instância de um objeto.

Quando executo o código a seguir, estou recebendo o erro abaixo. Tentei copiar o código de exemplo da aula, mas recebi o mesmo erro. Alguém consegue me ajudar a entender o porque do erro?

Erro: Selenium.teste.UsuarioSystemTest.DeveCadastrarUsuario: System.NullReferenceException : Referência de objeto não definida para uma instância de um objeto.

using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;



namespace teste_de_sistema.testes
{
    [TestFixture]
    class UsuariosSystemTest
    {
        [Test]
        public void deveCadastrarUsuario()
        {
            //abrindo o navegador
            IWebDriver firefox = new FirefoxDriver();
            //abrindo a url
            firefox.Navigate().GoToUrl("http://localhost:8080/usuarios/new");

            //encontrando os campos na tela
            IWebElement campoNome = firefox.FindElement(By.Name("usuario.nome"));
            IWebElement campoEmail = firefox.FindElement(By.Name("usuario.email"));
            IWebElement btnSalvar = firefox.FindElement(By.Id("btnSalvar"));

            //preenchendo campos
            campoNome.SendKeys("Renan Saggio");
            campoEmail.SendKeys("renan@caelum.com.br");

            //clicando no botão salvar
            btnSalvar.Click();

            //verifica se o usuario aparece na lista
            bool achouNome = firefox.PageSource.Contains("Renan Saggio");
            bool achouEmail = firefox.PageSource.Contains("renan@caelum.com.br");

            //fecha o navegador
            firefox.Close();

            //Validação dos dados cadastrados
            Assert.IsTrue(achouNome);
            Assert.IsTrue(achouEmail);



        }
    }
}
2 respostas

Opa, algum método de busca de elemento ta retornando nulo. A solução aí, é dar uma debugada no código e achar o ponto que ta vindo nulo.

solução!

Debugando o código, descobri que a execução estava muito rápida e que o bool estava sendo marcado como falso, gerando a referencia null.

Coloquei um wait e está funcionando.