【问题标题】:selenium-firefox-driver 2.25.0 not working correctly with Firefox 15selenium-firefox-driver 2.25.0 无法与 Firefox 15 一起正常工作
【发布时间】:2012-08-31 10:36:42
【问题描述】:

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

【问题讨论】:

标签: firefox selenium-webdriver selenium-firefoxdriver


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    我在最新版本的 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 驱动程序。

    【讨论】:

      猜你喜欢
      • 2016-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-27
      • 1970-01-01
      • 2019-02-24
      相关资源
      最近更新 更多