1
resposta

Exceção ElementNotVisibleException

Boa tarde, estou com o seguinte problema no IE: Ao executar meu script, após entrar na aplicação o selenium na maioria das vezes não consegue localizar o elemento de texto para poder inserir. Isso ocorre no IE e no Chrome. Já utilizei a busca por id, name e class, as únicas disponíveis. No firefox funciona, mas essa minha validação precisa ser feita no IE.

Bliotecas usadas:

System;
System.Collections.Generic; 
System.Linq; 
System.Text; 
System.Threading.Tasks;
OpenQA.Selenium; 
OpenQA.Selenium.IE; 
OpenQA.Selenium.Interactions;
            IWebDriver driver = new InternetExplorerDriver();
            driver.Navigate().GoToUrl("site");

            driver.Navigate().GoToUrl("site para cadastrar");

            IWebElement novo = driver.FindElement(By.Id("Topo1$imgPreInserir"));
            novo.Click();

            IWebElement descricao = driver.FindElement(By.Name("txtDescricao"));
            IWebElement salvar = driver.FindElement(By.Name("Topo1$imgGravarAux"));

            descricao.SendKeys("textottr"); 

//Exceção lançada aqui OpenQA.Selenium.StaleElementReferenceException' //occurred in WebDriver.dll
//Additional information: Element is no longer valid

            comissao.SendKeys("10");
            salvar.Click();
        }
    }
}

Obs: Esse problema é intermitente.

1 resposta

Olá Hildo,

olhando o seu código parece que o comportamento do teste é clicar em algum link para acessar a tela do formulário, que quando carregar ele preenche os campos e depois clica no botão para salvar.

Um palpite sobre o que pode estar acontecendo é que o Selenium está executando o comando driver.FindElement(By.Name("txtDescricao")) antes de terminar de carregar a página depois que ele clicou no link. Veja se executando passo a passo em debug ele passa o teste no IE ou no Chrome.

Outro problema que pode estar acontecendo é alguma propriedade html ou css da página que é necessário para o elemento ficar visível, mas que funciona apenas no Firefox.