Existem vários sites que tem menus dropdown e dependendo do site precisa apontar o mouse ou clicar e aguardar apresentar os submenus.
Para fazer essa simulação eu utilizei o site http://www.msn.com.br que utiliza esse tipo de menu dropdown.
Vamos utilizar a biblioteca import org.openqa.selenium.interactions.Actions.
O código fica assim:
Actions actions = new Actions(driver);
IWebElement menuDropDown = driver.FindElement(By.LinkText("ENTRETENIMENTO"));
actions.MoveToElement(menuDropDown);
//actions.Click();
actions.Perform();
driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(6));
driver.FindElement(By.LinkText("famosos")).Click();
Para o comando IWebElement coloquei o nome menuDropDown.
Para o comando FindElement fiz a procura pelo Texto do Link.
Para o comando actions.moveToElement o Selenium vai procurar o IWebElement que colocamos o nome de "menuDropDown", ou seja, o Link "ENTRETENIMENTO"
Para o comando actions.Click() é para ser usado caso o menu para apresentar o submenu tenha que ter a ação de um clique, como o Site do MSN precisa apenas que o mouse seja posicionado eu comentei o comando.
O comando driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(6)); é para aguardar 6 segundos para o submenu ser apresentado.
Para o comando FindElement fiz a procura pelo Link de Texto "famosos".
Abaixo o código completo:
É isso aí pessoal, estava no Débito.
Cleber, bom dia.
ResponderExcluirPost muito bom, porem no meu caso não deu certo, pois os botões são em Javascript.
Gostaria de saber se você não pretende escrever nada como realizar a chamada dos botões em javascript?
Obrigado
Rodrigo Arriel
Oi Rodrigo, seu botão em javascript é tipo dropdown? Baixa o plugin do selenium para firefox da um rec e play e vê se pelo browser funciona. Caso funcione no aplicativo da para exportar para C# daí você vê qual foi a referencia que foi usada do objeto. Pelo selenium do firefox dá para pegar varias referencias e tentar usar no webdriver.
ResponderExcluirCleber,
ResponderExcluirBom dia.
Em uma aplicação eu resolvi de outra forma, mas o problema de acionamento do botão em javascript me persegue.
Gostaria de verificar com você onde encontro a biblioteca import org.openqa.selenium.interactions.Actions que você se refere neste post?
Muito obrigado
Rodrigo Arriel
Bom dia Rodrigo,
ResponderExcluirEssa biblioteca em que você se refere é para Java, para C# é a seguinte:
using OpenQA.Selenium.Interactions;
Abraço
Cleber,
ResponderExcluirBoa tarde.
Muito obrigado.
Aproveitando, estes comando funcional em paginas ASP?
Pois a aplicação que estou automatizando é toda feita em asp. E como devo proceder para pegar o nome do botão?
Muito obrigado pela força
Abraço
Rodrigo Arriel
Cleber,
ResponderExcluirEstou fazendo da seguinte forma mais sem sucesso.
Actions actions = new Actions(driver);
IWebElement menuDropDown = driver.FindElement(By.LinkText("Ordem de Serviço"));
actions.MoveToElement(menuDropDown);
actions.Click();
actions.Perform();
driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(6));
Já não sei o que fazer mais.
Boa Noite Rodrigo,
ExcluirVocê não tem o link da aplicação para eu tentar ver se consigo acessar o menu?
Boa tarde Rodrigo,
ResponderExcluirVocê tentou pela ide do selenium no firefox? Por ela você faz o Rec e ela gera o script, daí você vê como que ela faz para identificar o elemento, daí você tenta usar esse elemento que ela encontrou e faz um mouse action ou um findelements mesmo.
Cleber,
ResponderExcluirBoa tarde.
Fiz os testes do via FireFox, e deu certo.
Obrigado
Att
Rodrigo Arriel
Este comentário foi removido pelo autor.
ResponderExcluirCleber,
ResponderExcluirBom dia. Tudo bem!
Bom, como sempre estou aqui novamente para pedir dica de automação. kkk
O lance é que as aplicações da minha empresa tem umas coisas de maluco, que só vendo para acreditar. mas vamos la com a pergunta.
Na minha aplicação tem alguns pop-up e modais que são em VBScript, e tenho que acionar os botões nele. O que devo fazer para meu robô entender isto.
Opa Rodrigo, boa tarde,
ExcluirCara, você tem que identificar os id´s dos popups e das modais, se você não conseguir na mão, usa aquele app do firefox, já fiz automação e consegui desta forma.
Tudo na paz Cleber.
ResponderExcluirEntão, minha aplicação só funciona no IE, só no IE 9. Por isto não tenho como pegar as informações via FF.
Este comentário foi removido por um administrador do blog.
ResponderExcluir