Selenium(Java):将鼠标悬停在按钮上并单击其中一个选项

时间:2014-03-26 02:32:08

标签: java css selenium mousehover

我正在使用Selenium使用Java语言自动化UI。

我有一个操作按钮,当用户将鼠标悬停在操作按钮上时,它会提供两个可单击的选项 - 创建和编辑

我已将CSS定位器存储为Enums for Action按钮,并将Create和Edit(可点击)链接分别存储为ACTIONBUTTON,CREATEACTION,EDITACTION。

我使用了类似下面的Java代码,但是它提供了一个错误,说明 java.lang.ClassCastException:org.openqa.selenium.By $ ByCssSelector无法转换为org.openqa.selenium.WebElement < / p>

Actions actions = new Actions(driver);
actions.moveToElement((WebElement) DCSAdminEnums.ACTIONBUTTON.getLocator());

actions.moveToElement((WebElement) DCSAdminEnums.CREATEACTION.getLocator());
actions.click();
actions.perform();

请建议您使用我拥有的枚举来帮助您更好地处理此问题。

更新: 我也尝试使用下面的代码样式,但它不起作用: - (

WebElement menu = driver.findElement((By.xpath("//*[@id='button-1177-btnInnerEl']")));
WebElement submenu = driver.findElement((By.cssSelector("a[id='menuitem-1175-itemEl']")));
Actions action = new Actions(driver);
action.moveToElement(menu).perform();
Thread.sleep(2000);
action.click(submenu).perform();

1 个答案:

答案 0 :(得分:0)

ByWebElement是不同的类型,因此编译错误。

如果你在谈论没有采取行动,那么这与你原来的帖子完全不同。请问一个新问题。

WebbElement可以检索

driver.findElement(By locator),因此您需要先使用driver.findElement(yourLocator)来获取元素。

Actions actions = new Actions(driver);
actions.moveToElement(driver.findElement(DCSAdminEnums.ACTIONBUTTON.getLocator()));
actions.moveToElement(driver.findElement(DCSAdminEnums.CREATEACTION.getLocator()));
actions.click().perform();