4

自从我升级到 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 的“本机事件”?

4

2 回答 2

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以使用ISelenium接口。

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

于 2012-09-13T14:42:21.930 回答
1

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

于 2012-09-10T13:59:25.610 回答