在使用selenium的不同版本的firefox上,本机事件的行为会有所不同

时间:2015-07-16 13:02:49

标签: java firefox selenium selenium-webdriver webdriver

之前我使用Firefox 25.0.1和Selenium 2.42.2来测试我的网络应用程序。它由一个菜单选项卡组成,悬停在其上,提供子菜单,然后我必须单击其中一个子菜单。我使用以下代码:

Actions actions = new Actions(getFFWebDriver());
Action action = actions.moveToElement(getFFWebDriver().findElement(By.id("main.menu"))).build();
action.perform();
getWebDriver().findElement(By.xpath("//*[@id=\"submenu\"]/span")).click();

但是,当我将浏览器升级到版本28时,它并不像以前那样工作。 我也尝试将硒版本升级到2.46,但它仍然不像以前那样使用硒2.42和FF-25。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:0)

firefox webdriver的本机事件支持往往适用于每个版本的selenium的几个特定版本的浏览器。我怀疑你的版本的selenium不支持firefox 28中的本机事件。

V2.42的更改日志并没有说明它们支持原生事件的firefox版本,但显然V2.41支持Firefox的V28版本。你总是可以尝试降级到那个版本的selenium或者在selenium V2.46上试用firefox 33,它看起来像是拥有本机事件支持的最新版firefox。

https://github.com/SeleniumHQ/selenium/blob/master/java/CHANGELOG

还可以选择在原生事件中使用合成事件。

答案 1 :(得分:0)

对我而言,它的工作原理如下:

WebElement menu = driver.findElement(men);
        Actions builder = new Actions(driver);
        builder.moveToElement(menu).moveToElement(driver.findElement(submenu)).click().build().perform();

这甚至可以升级FF 25 - > 30,也适用于Chrome。