我使用动作将鼠标悬停在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);
这是一个停止问题。任何帮助表示赞赏。
答案 0 :(得分:3)
执行鼠标悬停需要使用WebDriver的高级用户交互API。在Java语言绑定中,这是由Actions
类完成的。不幸的是,目前,SafariDriver
does not implement the Advanced User Interactions API,所以你无法直接完成此任务。在实现之前,您可以使用JavaScript模拟它来触发鼠标悬停时触发的事件。