2011-11-29 14 views
11

C'è qualcuno che può fornire un esempio C# di come superare il noto problema del selenio che coinvolge la pseudo-classe css: hover?Una soluzione alternativa per Selenium 2.0 WebDriver & the: pseudoclass hover

In sostanza, sto lavorando ai test di regressione per un sito Web che avvia l'IDE del selenio (e costruisco il resto del codice in Visual Studio 2008) e devo passare con il mouse su un div, farlo apparire e fare clic su un collegamento all'interno di detto div.

Tutti i miei sforzi hanno fallito tuttavia, e sembra che molti abbiano questo problema, senza soluzione.

Grazie in anticipo!

+0

hai guardato questo:.! http://stackoverflow.com/questions/2973145/selenium-and- hover-css – prestomanifesto

risposta

13

Ok! Così ho apprezzato l'aiuto (in realtà avevo visto quel filo, ma la classe .hover() è stato dichiarato obsoleto, e non riuscivo a farlo funzionare. Ho fatto, però, basta trovare una soluzione solida.

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(); 

Inoltre, sarà necessario disporre di una coppia con dichiarazioni incluse

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

Spero che questo aiuti

+2

Grazie mille per aver incluso le istruzioni "using". Senza di esso, ho avuto un momento difficile t cercando di trovare una soluzione per il mouseover usando Webdriver (C#) su IE. –

+0

Proprio il problema che ho avuto. Grazie per questo. – gottlieb76

Problemi correlati