我想在下拉菜单上做鼠标悬停功能。当我们将鼠标悬停在菜单上时,它将显示新的选项。我尝试使用xpath单击新选项。但不能直接点击菜单。因此,作为手动方式,我尝试将鼠标悬停在下拉菜单上,然后单击新选项。
Actions action = new Actions(webdriver);
WebElement we = webdriver.findElement(By.xpath("//html/body/div[13]/ul/li[4]/a"));
action.moveToElement(we).build().perform();
发布于 2013-06-25 18:03:34
执行“鼠标悬停”操作是不可能的,相反,你需要一次完成所有你想要实现的操作。因此,移动到显示其他元素的元素,然后在同一链中,移动到现在显示的元素并单击它。
当使用Action Chains时,你必须记住“像用户一样去做”。
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();
发布于 2014-05-28 08:21:06
根据this的博客文章,我能够使用Selenium 2Webdriver使用以下代码触发悬停:
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);
发布于 2016-11-10 20:07:36
这段代码运行得很好:
Actions builder = new Actions(driver);
WebElement element = driver.findElement(By.linkText("Put your text here"));
builder.moveToElement(element).build().perform();
将鼠标悬停在上面之后,您可以继续对所显示的信息执行下一步操作
https://stackoverflow.com/questions/17293914
复制相似问题