【问题标题】:webdriver mouseover in Firefox stopped workingFirefox 中的 webdriver mouseover 停止工作
【发布时间】:2013-08-06 17:42:19
【问题描述】:

我在我测试的应用程序中有几个菜单,需要将鼠标悬停在顶部菜单项上,才能显示菜单的其余部分(将其下拉)。

顶部菜单项如下所示:

<li>
  <a href="javascript:void(0)">>        
    <span>Orders</span>

在过去的 3 或 4 个月里,我一直使用这些代码行,没有任何问题:

WebElement webElement = driver.findElement(By.xpath("//li/a[span[text()='Orders']]"));
new Actions(driver).moveToElement(webElement).build().perform();

这会将鼠标悬停在“订单”菜单项上,然后允许我选择下拉项目之一。

我现在使用的是 FF21 和 WebDriver 2.33,悬停不再起作用。 “订单”菜单项将悬停在上方,菜单将下拉,但也会立即再次卷起。这会阻止我选择子菜单项。

到目前为止我已经尝试过:

  • 在上述代码之后添加了一个等待,以允许我选择子菜单项: 没用
  • 在我正在使用的 firefox 配置文件中启用了本机事件: 行为没有改变

非常感谢任何帮助,因为我在没有可用菜单系统的情况下死在水中。

顺便说一句:这段代码确实在 IE 中工作,所以它似乎是 FF 特有的问题?

【问题讨论】:

  • 当菜单回滚时,鼠标是否仍然位于“订单”菜单项上方 - 还是已经移开?还有一个很明显的问题,但我们不得不问:你在FF21中手动测试时有同样的问题吗?
  • 我可以确认问题存在于 FF21 + selenium-webdriver 2.33 中。我还发现了 code.google.com/p/selenium/issues/detail?id=4893 的错误
  • @vincebowdren :手动工作正常。使用 webdriver 时光标(指针)不可见
  • @zerkms :感谢指向该缺陷的指针。尽管开发人员似乎只认为这是“中等”优先级:-p

标签: java firefox webdriver mousehover


【解决方案1】:

根据 Selenium 的更改日志 (https://code.google.com/p/selenium/source/browse/java/CHANGELOG),似乎只有 Firefox 20 支持本机事件(如您使用 Actions 类)。 请在 v2.32.0 的更新日志中掠夺。有一行:

“此版本支持 Firefox 版本:10esr、17esr、19、20”

v2.33.0 的更新日志没有任何关于支持 Firefox 21 的内容。

在 Firefox 20 上试用您的代码。

【讨论】:

    【解决方案2】:

    试试下面的java脚本。它在我们的项目中起作用。希望它也适用于您...干杯...

    String javaScript = "var evObj = document.createEvent('MouseEvents');" + "evObj.initMouseEvent(\"mouseover\",true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);"
             + "arguments[0].dispatchEvent(evObj);";
             ((JavascriptExecutor) Driver.driver).executeScript(javaScript, element);
    

    【讨论】:

      猜你喜欢
      • 2012-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-27
      • 1970-01-01
      • 2013-10-09
      相关资源
      最近更新 更多