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

driver.close não fecha o navegador

Estou executando o código abaixo, mas as janelas do Firefox não são fechadas após a execução. Alguém consegue me explicar se tem algo de errado? O código roda normal.

namespace teste_de_sistema.testes
{
    [TestFixture]
    class UsuariosSystemTest
    {
        private IWebDriver firefox;
        //executa antes de cada teste
        [SetUp]
        public void AntesDosTestes()
        {
            //abrindo o navegador
            firefox = new FirefoxDriver();
        }

        [Test]
        public void DeveCadastrarUsuario()
        {

            //abrindo a url
            firefox.Navigate().GoToUrl("http://localhost:8080/usuarios");
            //navega pelo link
            firefox.FindElement(By.LinkText("Novo Usuário")).Click();
            System.Threading.Thread.Sleep(1000);

            //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("Adriano Xavier");
            campoEmail.SendKeys("axavier@empresa.com.br");

            //clicando no botão salvar
            btnSalvar.Click();
            System.Threading.Thread.Sleep(1000);

            //verifica se o usuario aparece na lista
            bool achouNome = firefox.PageSource.Contains("Adriano Xavier");
            bool achouEmail = firefox.PageSource.Contains("axavier@empresa.com.br");

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

        [Test]
        public void CadastraUsuarioEmBranco()
        {
            //abrindo a url
            firefox.Navigate().GoToUrl("http://localhost:8080/usuarios");
            //navega pelo link
            firefox.FindElement(By.LinkText("Novo Usuário")).Click();
            System.Threading.Thread.Sleep(1000);

            //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("");
            campoEmail.SendKeys("");

            //clicando no botão salvar
            btnSalvar.Click();
            System.Threading.Thread.Sleep(1000);

            //verifica se o usuario aparece na lista
            bool erroNome = firefox.PageSource.Contains("Nome obrigatorio!");
            bool erroEmail = firefox.PageSource.Contains("E-mail obrigatorio!");

            //Validação dos dados cadastrados
            Assert.IsTrue(erroNome);
            Assert.IsTrue(erroEmail);
        }
        //Executa após cada teste
        [TearDown]
        public void DepoisDosTestes()
        {
            //fecha o navegador
            firefox.Close();
        }
3 respostas
solução!

Oi Luiz!

Você consegue nos passar o log do Selenium? Aparece algum erro?

De acordo com o fórum do Selenium (https://github.com/seleniumhq/selenium-google-code-issue-archive/issues/7376), esse tipo de chamado foi fechado, pois eles não conseguem reproduzir o problema.

Você pode substituir o firefox.Close(); por firefox.Quit(); ? Algumas pessoas conseguiram contornar o problema desse jeito (apesar de gerar alguns erros no log).

Boa sorte e bons estudos!

Não sei onde encontro o log do Selenium... mas trocar para

firefox.Quit();

resolveu o problema! Obrigado

Excelente, Luiz! Sempre às ordens!