首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用Java在Selenium WebDriver中实现鼠标悬停功能?

如何使用Java在Selenium WebDriver中实现鼠标悬停功能?
EN

Stack Overflow用户
提问于 2013-06-25 17:39:11
回答 8查看 418.4K关注 0票数 148

我想在下拉菜单上做鼠标悬停功能。当我们将鼠标悬停在菜单上时,它将显示新的选项。我尝试使用xpath单击新选项。但不能直接点击菜单。因此,作为手动方式,我尝试将鼠标悬停在下拉菜单上,然后单击新选项。

代码语言:javascript
复制
Actions action = new Actions(webdriver);
WebElement we = webdriver.findElement(By.xpath("//html/body/div[13]/ul/li[4]/a"));
action.moveToElement(we).build().perform();
EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2013-06-25 18:03:34

执行“鼠标悬停”操作是不可能的,相反,你需要一次完成所有你想要实现的操作。因此,移动到显示其他元素的元素,然后在同一链中,移动到现在显示的元素并单击它。

当使用Action Chains时,你必须记住“像用户一样去做”。

代码语言:javascript
复制
Actions action = new Actions(webdriver);
WebElement we = webdriver.findElement(By.xpath("html/body/div[13]/ul/li[4]/a"));
action.moveToElement(we).moveToElement(webdriver.findElement(By.xpath("/expression-here"))).click().build().perform();
票数 119
EN

Stack Overflow用户

发布于 2014-05-28 08:21:06

根据this的博客文章,我能够使用Selenium 2Webdriver使用以下代码触发悬停:

代码语言:javascript
复制
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).executeScript(javaScript, webElement);
票数 26
EN

Stack Overflow用户

发布于 2016-11-10 20:07:36

这段代码运行得很好:

代码语言:javascript
复制
 Actions builder = new Actions(driver);
 WebElement element = driver.findElement(By.linkText("Put your text here"));
 builder.moveToElement(element).build().perform();

将鼠标悬停在上面之后,您可以继续对所显示的信息执行下一步操作

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17293914

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档