2011-11-29 14 views
11

¿Hay alguien que pueda proporcionar un ejemplo C# de cómo superar el problema conocido de Selenium que implica la pseudoclase css: hover?Una solución para Selenium 2.0 WebDriver & the: hover pseudoclass

Básicamente, estoy trabajando en pruebas de regresión para un sitio web que comienza con el IDE de selenio (y construyendo el resto de mi código en Visual Studio 2008), y necesito pasar el cursor sobre un div, hacer que aparezca y hacer clic en enlace dentro de dicho div.

Todos mis esfuerzos han fallado, sin embargo, y parece que muchos tienen este problema, sin solución.

¡Gracias de antemano!

+0

¿Has mirado en esto:.! http://stackoverflow.com/questions/2973145/selenium-and- hover-css – prestomanifesto

Respuesta

13

¡Bien! Así que aprecio la ayuda (que en realidad había visto ese hilo, pero la clase .hover() ya no se utiliza, y no pude conseguir que funcione. Yo, sin embargo, acaba de encontrar una solución sólida.

var phone = driver.FindElement(By.Id("phones")); 
var phoneLi = phone.FindElements(By.TagName("li")); 
Actions action = new Actions(driver);//simply my webdriver 
action.MoveToElement(phoneLi[1]).Perform();//move to list element that needs to be hovered 
var click = action.MoveToElement(phoneLi[1].FindElements(By.TagName("a"))[0];//move to actual button link after the 'Li' was hovered 
click.Click(); 
click.Perform(); //not too sure why I needed to use both of these, but I did. Don't care, it works ;) 
IAlert alert = driver.SwitchTo().Alert(); 
alert.Accept(); 

también, usted tendrá que tener una pareja que usa las declaraciones incluidas

using OpenQA.Selenium; 
using OpenQA.Selenium.Interactions; 
using OpenQA.Selenium.Interactions.Internal; 
using OpenQA.Selenium.Support.UI; 

espero que esto ayude

+2

Muchas gracias por incluir las declaraciones 'using'. Sin esto, he estado teniendo un momento difícil t para buscar una solución al mouseover usando Webdriver (C#) en IE. –

+0

Solo el problema que tuve. Gracias por esto. – gottlieb76

Cuestiones relacionadas