Обходной путь для Selenium 2.0 WebDriver и псевдокласса: hover - PullRequest
11 голосов
/ 29 ноября 2011

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

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

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

Заранее спасибо!

1 Ответ

13 голосов
/ 30 ноября 2011

Хорошо!Поэтому я благодарен за помощь (я действительно видел этот поток, но класс .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;

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

...