我不知道在 selenium 中如何处理这个 mouseOver。 我正在使用 FF13。以及最新版本的 webdriver。
我读了这个Is there a proved mouseOver workaround for FirefoxDriver in Selenium2?我就是这样做的:
Actions builder = new Actions(driver); Action hoverOverRegistrar = builder.moveToElement(menuRegistrar); hoverOverRegistrar.perform();
但是当它指向该对象时,另一个对象(下拉菜单)会出现片刻然后隐藏,因此 selenium 并不总是有时间点击出现的下拉菜单。
我做错了什么?
请您参考如下方法:
可悬停元素我发现最好使用 JavaScript。 Action Builder 往往有很高的失败率,并且会导致其他可悬停元素在滚动页面时变得可见,从而导致您想要的元素变得模糊。我在网上的某个地方找到了这种方法(不记得在哪里),它比我尝试过的任何其他方法都要好得多。
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);";
IJavaScriptExecutor executor = driver as IJavaScriptExecutor;
executor.ExecuteScript(javaScript, webElement);
只需将它放在一个您可以使用它的地方的方法中,将它传递给您想要悬停的驱动程序和元素,您就可以设置了。
