3

Selenium Webdriver 2.31.0 和 Scala 2.9

有人知道如何在 Firefox 中进行鼠标悬停吗?我基本上试图将鼠标悬停在一个元素上以显示工具提示。

此代码无法将鼠标移到指定的元素上。

      val webElement = webDriver.findElement(By.cssSelector(myElement.queryString))
      val builder = new Actions(webDriver)
      val hover = builder.moveToElement(webElement).build()
      hover.perform()

我也尝试过鼠标事件但没有成功(如此处所述WebDriver mouseOver is not working with selenium grid

4

3 回答 3

2

这有点轶事,因为我没有确切的技术解释,但我过去曾经历过这种情况,并通过升级 Selenium 进行了补救。

我检查的第一件事是确保我的硒是最新的。这包括依赖项、独立服务器和浏览器驱动程序(但在这种情况下,由于 Firefox 包含在 Selenium 中,因此不适用)。

另一个与 Firefox 更直接相关的可能(也是更可能的)原因是 Firefox 本身。根据我的经验,Firefox 更新有时会破坏某些 selenium 功能,尤其是悬停。我发现要么升级 selenium,要么如果没有发布更新,降级 Firefox 将解决问题。

我希望我有更详细的信息可以给你,但我自己仍在学习这种情况的更详细的细节。如果不出意外,我希望这能为您指明正确的方向。

于 2014-07-15T18:38:55.127 回答
1

由于您的问题在 Firefox 中,您可能需要使用 webdriver 启用本机事件,特别是

FirefoxProfile profile = new FirefoxProfile();
profile.setEnableNativeEvents(true);
WebDriver driver = new FirefoxDriver(profile);

我必须这样做才能在 Unix 上的 Firefox 中进行拖放操作,尽管它在 Windows 机器上使用相同的代码。

于 2014-07-21T14:04:15.040 回答
1

既然你没有说你有任何错误,

  • 在 build().perform() 之后,提供一个等待方法,比如 Thread.sleep() 一段时间,因为鼠标悬停可能会在几秒钟内执行,并且可能看不到工具提示。

  • 确保定位器正确(因为您可能指向其他不显示任何工具提示的定位器)

  • 确保您的 Firefox 支持鼠标悬停功能

该代码可能与您的代码相似,但请尝试一下(JAVA),

        Actions builder = new Actions(driver); 

        WebElement we = driver.findElement(locator);

        Actions perf= builder.moveToElement(we).build();

        perf.perform();

        Thread.sleep(1000);

您可以查看您的参考链接:#firefox 问题

于 2014-07-16T11:51:32.777 回答