2013-05-01 73 views
2

硒的webdriver 2.31.0 使用Scala 2.9硒的webdriver悬停不工作

任何人都知道该怎么做在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 properly with selenium grid描述)

+1

您是否收到任何错误讯息? – 2013-06-11 16:25:32

+0

我也遇到同样的问题,当我在代码上运行鼠标(与上面的代码相同)时,出现鼠标并将其移除。任何人都请帮我找出这个。我正在使用最新的Chrome浏览器。 – 2014-07-15 06:11:24

回答

0

这有点传闻,因为我没有一个确切的技术解释,但我已经在过去经历过这一点,已通过升级硒补救。

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

另一个与Firefox更直接相关的可能(更可能)原因是Firefox本身。我的经验是,Firefox更新可能会不时打破一些硒功能,特别是悬停。我发现升级硒,或者如果没有更新发布,降级Firefox将解决问题。

我希望我有更详细的信息给你,但我仍然在自己学习这种情况的更精细的细节。如果没有别的,我希望这能指出你朝着正确的方向。

1

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

  • 构建之后()执行(),提供了一个wait方法说,Thread.sleep()方法进行一定的时间,因为有是mousehover在几秒钟内执行的可能性,并且可能无法看到工具提示。

  • Makesure的定位是正确的(因为你可能会指向一些其它定位器不显示任何提示)

  • Makesure你Firefox支持的mousehover功能

的代码可能类似于作为与您的,但给它一试(JAVA),

 Actions builder = new Actions(driver); 

     WebElement we = driver.findElement(locator); 

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

     perf.perform(); 

     Thread.sleep(1000); 

你可以看的出来,链接,您的文献:#firefox issue

1

由于您的问题是在Firefox中,您可能需要启用Native Events与webdriver的,特别是

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

我不得不这样做是为了让拖放在Firefox工作在Unix,但它的工作在Windows上使用相同的代码。