AT.info ПОСИДЕЛКИ  vKontakte   facebook группа  
Mouseover c WebDriver
Offline
Зарегистрирован: 01.11.11

На странице есть скрытое меню, которое становится видимым при наведении курсора на определённую область.

<div class="blockSubmenuWrapper">
    <a class="commonAction">admin</a>
    <div class="blockSubmenu">
        <ul class="menu-items">
            <li><a>...</a>
            <li><a>...</a>
            <li><a>...</a>
            <li class="last"><a>...</a>
        </ul>
    </div>
</div>

При наведении курсора на <div class="blockSubmenuWrapper"> меню становится видимым. Задача: делать клики по элементам <a>, которые находятся в скрытом меню. Для этого я использую

WebElement menu = driver.findElement(By.xpath("//a[@class='blockSubmenuWrapper']"));

WebElement myLink = driver.findElement(By.xpath("..."));

Actions builder = new Actions(driver);

builder.moveToElement(menu).build().perform();

myLink.click();

Это нормально отрабатывает для всех пунктов, кроме последнего. При попытке клика на последнем пункте менюшка появляется и сразу исчезает, как будто следом за mouseOver сразу же было сгенерировано и mouseOut... Пробовал другие варианты работы с методами builder типа clickAndHold, release и click, но эффект тот же. В чём может быть проблема? И есть ли альтернативные варианты реализации mouseOver для WebDriver?..

Offline
Зарегистрирован: 20.07.09
все очень просто вам надо использовать клик внути Action

все очень просто вам надо использовать клик внути Action, иначе ваше действие получается внешним. Также надо учесть, что Action класс полностью поддерживается в фаерфоксе и хтмлюните. В других браузерах могут быть проблемы. 

builder.moveToElement(menu).click(myLink).build().perform();

n/a