我在测试的应用程序中有几个菜单需要鼠标悬停在顶部菜单项上,以显示菜单的其余部分(将其放下)。
顶部菜单项如下所示:
<li>
<a href="javascript:void(0)">>
<span>Orders</span>
在过去的3到4个月里,我使用了这些代码,没有任何问题:
WebElement webElement = driver.findElement(By.xpath("//li/a[span[text()='Orders']]"));
new Actions(driver).moveToElement(webElement).build().perform();
这会将鼠标悬停在“订单”菜单项上,然后允许我选择其中一个已删除的项目。
我现在正在使用FF21和WebDriver 2.33,并且悬停不再有效。 “订单”菜单项将悬停在上面,菜单将下拉,但也会立即再次卷起。这使我无法选择子菜单项。
到目前为止我尝试过:
任何帮助都非常感激,因为我在没有工作菜单系统的情况下死在水中。
BTW:这段代码 在IE中工作,所以它似乎是一个特定于FF的问题?
答案 0 :(得分:1)
基于Selenium的更改日志(https://code.google.com/p/selenium/source/browse/java/CHANGELOG),似乎仅在Firefox 20中支持本机事件(因为您正在使用Actions类)。 请在更新日志中抢夺v2.32.0。有一条线:
“此版本支持Firefox版本:10esr,17esr,19,20”
v2.33.0的更新日志没有任何关于支持Firefox 21的内容。
使用Firefox 20试用您的代码。
答案 1 :(得分:0)
尝试以下java脚本。它在我们的项目中有效。希望它也适合你...干杯......
String javaScript = "var evObj = document.createEvent('MouseEvents');" + "evObj.initMouseEvent(\"mouseover\",true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);"
+ "arguments[0].dispatchEvent(evObj);";
((JavascriptExecutor) Driver.driver).executeScript(javaScript, element);