鼠标悬停不适用于safari,selenium web driver

时间:2014-10-30 14:26:15

标签: java macos safari selenium-webdriver mousehover

我使用动作将鼠标悬停在FF和chrome中,它运行正常。但是同样的代码在safari中不起作用。我正在使用mac OS和selenium webdriver和java。

我尝试了以下代码。

 new Actions(driver).moveToElement(element).build().perform();

JS:

String mouseOverScript = "if(document.createEvent){var evObj = document.createEvent('MouseEvents');evObj.initEvent('mouseover', true, false); arguments[0].dispatchEvent(evObj);} else if(document.createEventObject) { arguments[0].fireEvent('onmouseover');}";
                    JavascriptExecutor js = (JavascriptExecutor) driver;
                    js.executeScript(mouseOverScript, element);

这是一个停止问题。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:3)

执行鼠标悬停需要使用WebDriver的高级用户交互API。在Java语言绑定中,这是由Actions类完成的。不幸的是,目前,SafariDriver does not implement the Advanced User Interactions API,所以你无法直接完成此任务。在实现之前,您可以使用JavaScript模拟它来触发鼠标悬停时触发的事件。