Não consigo acessar item em menu com Mouse over (Selenium webdriver)

Boa tarde pessoal,

Estou aprendendo a automatizar testes e cheguei a um ponto que não consigo sair do lugar. Será que alguém poderia me ajudar?
No sistema tem um menu que abre com a ação “mouse over”, até aí tudo bem consigo abrir durante o teste, porém o que não consigo fazer é clicar nos itens, pois o sistema passa direto (sem erros) como se tivesse clicado, mas não executa a ação desejada… desde já agradeço.

@lucyannasbelo qual ferramenta / biblioteca vc esta usando para automatizar? qual linguagem? pode colar o trecho do código que passa batido?

Da uma detalhada na sua pergunta … ai fica mais fácil pra gente te ajudar.

Estou utilizando Java - Selenium, IDE Eclipse e a codificação é para um sistema web.

Para abrir o menu (mouse over) utilizo esta codificação:

Actions acao = new Actions(driver);
wait.until(ExpectedConditions.visibilityOfElementLocated(menu));
WebElement menuMouseOver = driver.findElement(menu);
acao.moveToElement(menuMouseOver).build().perform();*

Esta codificação, só abre o menu, que possui links para outras telas. Então para tentar selecionar o item no menu utilizo esta:

wait.until(ExpectedConditions.elementToBeClickable(itemMenu)
driver.findElement(itemMenu).click();*

O que acontece é que a ação de mouse over funciona, mas a de clicar em algum item do menu não. Executo o teste que não apresenta nenhum erro, porém não vai para a tela do item selecionado.

Bom dia pessoal,

Acho que por ser iniciante não sabia que isso poderia acontecer, então me desculpem a vergonha que passei :cry:

Descobri o meu problema, e ele se chama diferenças no IE, pois em outros navegadores funcionaram, mas não havia pensado em testar em outros navegadores achando que tinha algo errado no código :(… O bom foi que aprendi modos diferentes de fazer a mesma coisa.

O problema que estava acontecendo é que quando o sistema estava “pegando” a posição do ‘itemMenu’, no IE ele estava pegando a posição onde o cursor do mouse estava, ou seja, ele encontrava o ‘itemMenu’ na tela mas, quando ia clicar pegava a posição do cursor e não do item. A solução foi retirar o cursor do Browser.

E abaixo seguem 2 outros modos de fazer a mesma coisa, caso alguém precise:

 Actions acao = new Actions(driver);
 wait.until(ExpectedConditions.visibilityOfElementLocated(menu));
 WebElement menuMouseOver = driver.findElement(menu);
  acao.moveToElement(menuMouseOver).moveToElement(driver.findElement(itemMenu)).click().build().perform();


Actions acao = new Actions(driver);
wait.until(ExpectedConditions.visibilityOfElementLocated(menu));
acao.moveToElement(driver.findElement(menu));
acao.moveToElement(driver.findElement(itemMenu));
acao.click();
acao.perform();

E de qualquer forma muito obrigada pela atenção… :wink:

@lucyannasbelo Obrigado por compartilhar sua resposta! o google e a comunidade agradecem ! :)

Obrigado pela dica… me ajudou muito!

Oi pessoal,

Utilizo o Selenium Webdriver no Visual Studio TFS, na linguagem C#.

Estou tendo dificuldades em aplicar o mouse over, independentemente do navegador utilizado (Chrome, IE11, Firefox).

O moveToElement não funciona para mim, ele não movimenta o cursor do mouse para o campo que preciso efetuar o hover. Alguém que manja de C# com Webdriver pode me ajudar?

Aproveitando, também gostaria de saber se é possível exibir popups com o Webdriver.

[]s


Carol Ciola

@CarolCiola

Dependendo do que queria fazer, tenta usar o JavaScriptExecutor e manipular os objetos via DOM ou utilizar JQuery.

ref:
http://www.seleniumhq.org/docs/03_webdriver.jsp

http://www.ufthelp.com/2014/11/what-is-javascriptexecutor-in-selenium.html

Obrigada @Maycon, vou dar uma pesquisada!


Carol Ciola

Log in to reply

Looks like your connection to Agile Testers was lost, please wait while we try to reconnect.