Selenium и: hover css

Используя selenium-rc и java-клиент, я хочу проверить меню, которое открывается, когда пользователь нажимает на него курсор. Он закрывается, когда мышь покидает меню. Это делается с помощью :hover css без javascript.

В селене есть много методов для действий мыши, но ни один из них, похоже, не запускает стиль css :hover, который будет использоваться.

Google показывает, что я не одинок с этой проблемой, но решения не существует. Некоторые люди отмечают, что вам нужно добавить код javascript; однако, в selenium rc, я не думаю, что у меня даже есть подходящее место для дополнительного кода javascript для пользователя.

Мое желание было бы использовать следующий код для работы, учитывая, что div # navi_settings содержит меню, которое содержит - обычно невидимый - элемент:

selenium.mouseHover("css=div#navi_settings");
assertTrue(selenium.isVisible("//a[contains(text(), 'Text on link')]"));

К сожалению, метод moveHover() еще не существует.

Ответ 1

Я не мог найти способ сделать это, используя интерфейс Selenium. Однако, поскольку я использую Selenium 2, я могу использовать API WebDriver в соответствии с http://groups.google.com/group/selenium-developers/msg/8210537dde07155f?pli=1

В вашем случае что-то подобное может работать, если вы можете перейти на Selenium 2:

WebDriver webDriver; 
...
((RenderedWebElement) webDriver.findElement(By.cssSelector("div#navi_settings"))).hover();

Ответ 2

Метод mouseOver активирует псевдо-класс :hover.