Selenium Webdriver和Firefox 18

Selenium Webdriver和Firefox 18,firefox,selenium,Firefox,Selenium,我的Selenium测试使用onMouseOver特性,如 List<WebElement> menuitems = getDriver().findElements(By.tagName("li")); Actions builder = new Actions(getDriver()); WebElement menu = menuitems.get(2); getDriver().manage().timeouts().implicitlyWait(C

我的Selenium测试使用onMouseOver特性,如

 List<WebElement> menuitems = getDriver().findElements(By.tagName("li"));
    Actions builder = new Actions(getDriver());
    WebElement menu = menuitems.get(2);
    getDriver().manage().timeouts().implicitlyWait(Constants.IMPLICITY_WAIT, TimeUnit.SECONDS);
    builder.moveToElement(menu).build().perform();
List menuitems=getDriver().findElements(按.tagName(“li”));
Actions builder=新操作(getDriver());
WebElement menu=menuitems.get(2);
getDriver().manage().timeout().implicitywait(Constants.IMPLICITY\u WAIT,TimeUnit.SECONDS);
builder.moveToElement(menu.build().perform();
我正在使用Firefox驱动程序。自从Firefox升级到版本18,我的测试就停止了。我知道这与本机事件支持有关,但版本18不支持本机事件,或者我能够启用它们吗?如果没有,我的代码是否有替换实现


我正在使用selenium java 2.28.0。

selenium java 2.27提到添加了对FF17的本机支持。但是,在for 2.28中没有提到对FF18的支持。因此,它的webdriver不支持本机事件,也不支持FF18不支持本机事件。您可以尝试降级到FF17,并可能在一段时间内关闭自动更新。

在WebDriver版本支持FF18之前,回滚到FF17是一项临时工作

FF17扩展支持发布包--


注意:如果您是Mac用户,只需在应用程序文件夹中将当前FF从“FireFox”重命名为“FireFox18”。从上面的URL安装软件包,它将创建一个名为“FireFox”的新应用程序,WebDriver将使用该程序。

对于FireFox 18支持,我们需要使用selenium WebDriver api 2.28.0,jar。

我的鼠标悬停在v28上。我现在使用下面的hoverOver方法和可选的javascript解决方案,它似乎可以正常工作

    public void HoverOver(IWebElement elem, bool javascriptWorkaround = true)
    {
        if (javascriptWorkaround)
        {
                String code = "var fireOnThis = arguments[0];"
                    + "var evObj = document.createEvent('MouseEvents');"
                    + "evObj.initEvent( 'mouseover', true, true );"
                    + "fireOnThis.dispatchEvent(evObj);";
                ((IJavaScriptExecutor)driver).ExecuteScript(code, elem);
        }
        else
        {
            Actions builder = new Actions(driver);
            builder.MoveToElement(elem).Build().Perform();
        }
    }

我在Firefox20上也面临同样的问题。然后我重新安装了最新的Selenium服务器(.jar文件)


希望这能奏效

如果你完全陷入困境,你可以暂时使用Sikuli。就我个人而言,我更喜欢Selenium“Actions”类,因为它更简单。关于Selenium 2.29或2.30是否解决了这个问题,有什么消息吗?