除了Selenium中的Actions类之外,鼠标指针/光标指向webelement

时间:2015-09-07 10:07:49

标签: selenium

enter image description here我很清楚我们可以使用Actions类移动到特定的Web元素,如下所示。

Actions(driver).moveToElement(driver.findElement(By.xpath("element"))).build().perform();

对于其中一个webelement,一旦我移动到该元素,我应该得到一个下拉列表。但有时这是有效的,有时则没有。是否有除Actions类之外的任何选项来模拟鼠标移动到特定的webelement?

我试图模拟鼠标指针移动到它的元素的HTML代码是一个类=" dropdown-submenu"

<li ng-show="setStatusPermission" class="dropdown-submenu"><a href="">Set status</a>
    <ul class="dropdown-menu" role="menu">
        <li ng-show="activePermission" class=""><a href="" data-ng-click="invokeTaskAction(taskDetails.id,'setStatus','active',true)">Active</a></li>
        <li ng-show="cancelPermission" class=""><a href="" data-ng-click="invokeTaskAction(taskDetails.id,'setStatus','cancelled',true)">Cancelled</a></li>
        <li ng-show="completePermission" class="ng-hide"><a href="" data-ng-click="invokeTaskAction(taskDetails.id,'setStatus','completed',true)">Completed</a></li>
        <li ng-show="errorPermission" class="ng-hide"><a href="" data-ng-click="invokeTaskAction(taskDetails.id,'setStatus','error',true)">Error</a></li>
        <li ng-show="expiredPermission" class="ng-hide"><a href="" data-ng-click="invokeTaskAction(taskDetails.id,'setStatus','expired',true)">Expired</a></li>
        <li ng-show="suspendPermission" class="ng-hide"><a href="" data-ng-click="invokeTaskAction(taskDetails.id,'setStatus','suspended',true)">Suspended</a></li>
    </ul>
</li>

执行操作的自动化代码snipet如下所示。

WebElement webElementSetStatus = basePage.waitForElementToLoadAndReturnWebElement_BasePage(
            bc_ui_TaskAction_Setstatus, "linkText", "15");
        basePage.getActions_BasePage().moveToElement(webElementSetStatus).build().perform();
        List<WebElement> options = basePage.getWebElements_BasePage(
            "#bc-td-actions-dropdown-list > li.dropdown-submenu > ul > li", "cssSelector");
        for (WebElement option : options)
        if (!option.getAttribute("class").equals("ng-hide") && !option.getText().isEmpty())
            actualAvailableStatusOptions.add(option.getText());

0 个答案:

没有答案