我有一个场景,我必须将鼠标悬停在菜单链接上,然后单击下拉子菜单。我正在使用的代码如下:
public void changeLanguageTest() throws InterruptedException
{
WebElement LanguageMenu = driver.findElement(By.cssSelector(".change-language>button"));
action.moveToElement(LanguageMenu);
WebElement mongolianLang = driver.findElement(By.cssSelector(".change-language>ol>li:nth-child(3)>a"));
action.moveToElement(mongolianLang).click().build().perform();
Thread.sleep(3000L);
}
但是当我运行此代码时,它失败并显示错误消息: -
org.openqa.selenium.UnsupportedCommandException:POST / session / 3077f893-d9ab-487d-b09f-c5bcd135ea31 / moveto与a不匹配 已知命令
我也尝试了下面提到的代码,但没有成功,也发生了同样的错误。
BaseClass.action.moveToElement(LanguageMenu).moveToElement(mongolianLang).click().build().perform();
我正在使用webdriver v2.53
并在FF v47.0.1
上运行。
答案 0 :(得分:2)
由于bug logged here geckodriver
尚未实施actions
。我们将要实施的行动是目前在W3C WebDriver standard
中定义的行动,而不是Selenium的行动。
Selenium表示他们将为行动提供Selenium-to-W3C-WebDriver
垫片,但这可能需要一些时间才能完成我们的实施。 geckodriver/Marionette
中的实施尚未开始。
作为mentioned here from v0.12.0 of geckodriver
,已实施new actions API
的路由,但在Marionette中尚未完全实现
您应升级geckodriver
。