我在 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);
这是一个令人瞩目的问题。任何帮助表示赞赏。
执行鼠标悬停需要使用 WebDriver 的高级用户交互 API。在 Java 语言绑定中,这是通过Actions
班级。不幸的是,目前,SafariDriver
未实现高级用户交互 API https://code.google.com/p/selenium/issues/detail?id=4136,因此您无法直接完成此操作。在实现之前,您可以使用 JavaScript 来模拟它,以触发鼠标悬停触发的事件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)