Обходной путь для Selenium 2.0 WebDriver & the: hover pseudoclass

Есть ли кто-нибудь, кто может предоставить пример С#, как пройти мимо известной проблемы Selenium с использованием псевдо-класса css: hover?

По сути, я работаю над регрессионным тестированием для веб-сайта startin w/selenium IDE (и для создания остального кода в Visual Studio 2008), и вам нужно навести курсор на div, сделать его видимым и щелкнуть ссылку внутри указанного div.

Однако все мои попытки потерпели неудачу, и, похоже, многие из них имеют эту проблему без решения.

Спасибо заранее!

Ответ 1

Хорошо! Поэтому я ценю помощь (я действительно видел этот поток, но класс .hover() устарел, и я не мог заставить его работать. Однако я нашел простое решение.

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

Кроме того, вам понадобится пара с использованием утвержденных инструкций.

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

Надеюсь, что это поможет!