之前我使用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。
任何帮助都将不胜感激。
答案 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。