我很清楚我们可以使用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());