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



  • @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!