5
respostas

Aguardar elemento através do Selenium

Estou realizando a automatização de testes de uma aplicação e estou usando a ferramente selenium para este trabalho , porém estou utilizando o comando thread.slee() do C sharp para aguardar determinado tempo , não se existe um outro metodo mais eficaz para que eu não aguarde todo o tempo do comando thread.sleep() , alguém poderia me ajudar ?

5 respostas

Fala ai Marco, de boa ?

Isso é possível através do WebDriverWait.

https://seleniumhq.github.io/selenium/docs/api/dotnet/html/T_OpenQA_Selenium_Support_UI_WebDriverWait.htm

OK , utilizei porém sem sucesso , os botões na aplicação estão sem atributo Name estou fazendo a busca pelo comando driver.FindElements(By.CssSelector("button[type='submit']"))[0].Click();

Bom na verdade nem o tempo que eu especifico no exemplo do link ele está respeitando , estou começando a trabalhar faz pouco tempo com selenium estou enfrentando varias problemas kkkkk mas aos poucos estão sendo resolvidos.

Marco, o que o Matheus indicou é que vc precisará fazer algo como o mostrado no exemplo do link que ele te passou:

IWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(3))
IWebElement element = wait.Until(driver => driver.FindElement(By.Name("q")));

Ou ainda, aguardar até que o elemento seja clicável:

WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
IWebElement element = wait.Until(ExpectedConditions.ElementToBeClickable(By.Name("q")));

Sendo que a parte By.Name("q") deverá ser trocada pelo código que vc utiliza para selecionar o seu elemento.

Pegou a ideia? Qualquer coisa é só falar!

Para saber mais:

http://toolsqa.com/selenium-webdriver/c-sharp/implicit-wait-commands-in-selenium-webdriver-c/

https://www.seleniumhq.org/docs/04_webdriver_advanced.jsp

Grande abraço e bons estudos!

Oi Gabriel.

Olha só, aproveitando o gancho... eu ví que você sugeriu o uso do WebDriverWait com o ExpectedConditions.

Ontem fui utilizar em um exemplo que estou trabalhando, e o Visual Studio está informando que o ExpectedConditions está deprecated.

Você sabe o que substituiu o ExpectedConditions ? Fiz uma procura no GOOGLE e não encontrei nada muito claro (cada um anda testando de um jeito diferente).

Valeu!

Ketlin, para a gente não conversar sobre dois assuntos no mesmo tópico, vc poderia abrir um novo tópico com esse assunto, por favor? Daí conversamos sobre isso lá e facilitará para que no futuro outras pessoas que tenham o mesmo problema possam encontrar uma solução de forma mais fácil.

Mas quando criar o tópico, já diga lá qual a versão da biblioteca do Selenium que vc está utilizando, ok?

Até lá, minha aluna!