selenium-firefox-driver 2.25.0与Firefox 15无法正常工作

时间:2012-09-06 15:00:47

标签: firefox selenium-webdriver selenium-firefoxdriver

自从我升级到Firefox 15后,我的Selenium测试已停止工作。我使用的是selenium-firefox-driver-2.25.0和selenium-java-2.25.0。具体来说,测试现在无法“点击”某些元素,例如GWT下拉菜单中的项目。

我是唯一遇到过这种问题的人吗?我认为Firefox 15对于Selenium来说可能只是“太新”了,而且很快就会发布2.25.1版本,但Firefox 15现在已经推出了一段时间。

使用Firefox 14.0.1测试一切正常。 Selenium是否支持Firefox 15的“本机事件”?

2 个答案:

答案 0 :(得分:1)

我遇到了类似的问题:selenium测试套件无法启动刚刚更新的ffox(14.0)。我找到的唯一解决方案是回滚到以前的ffox版本。

答案 1 :(得分:1)

我在最新版本的Firefox(15.0)和当前的2.25 Selenium上看到过类似的问题。我有一个基于Javascript的水平菜单,当您将鼠标悬停在菜单标题上时,它会显示菜单选项。我正在使用的IWebDriver代码是:

var menu = driver.FindElement(By.Id("menuId"));
var option = driver.FindElement(By.Id("menuItemId"));

WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));

Actions actions = new Actions(driver);
actions.MoveToElement(menu, 5, 5).Perform();

wait.Until<bool>((d) =>
{
    return option.Displayed;
});

option.Click();

这适用于IE和Chrome但不适用于Firefox - “mouseOver”(MoveToElement)动作从未发生过,因此菜单项永远不可见,测试超时(并失败)。

当我从NUnit运行测试时,我的测试代码中内置了一些配置支持,因此我可以控制是直接使用Web驱动程序还是使用WebDriverBackedSelenium(在当然,与RC服务器结合)。这允许我解决配置问题,这样如果我在“Firefox模式”下运行测试,我可以调用服务器,然后使用ISelenium接口,如下所示:

selenium.Click("id=menuItemId");

并且工作正常。我有一个方法确定运行测试的“模式”并相应地调用特定的单击操作,即选择直接使用IWebDriver接口或通过WebDriverBackedSelenium包装它以使用{{1接口。

如果Firefox驱动程序将来开始运行,我可以再次通过配置切换到使用Firefox Web驱动程序。