Javascript 如何在超链接上鼠标悬停-Webdriver

Javascript 如何在超链接上鼠标悬停-Webdriver,javascript,selenium,selenium-webdriver,mouseover,Javascript,Selenium,Selenium Webdriver,Mouseover,我正在为我的项目使用SeleniumWebDriver。我已经将代码自动化,将鼠标移到图像上,这已成功完成。但是,有些人告诉我,我怎么能用这个代码将鼠标移到超链接上 我使用的代码是 Actions build1=新操作(驱动程序); build1.moveToElement(WebElement.build().perform() 我也试过使用 Locatable hoverItem=(Locatable)driver.findElement(); 鼠标=((HasInputDevices)驱动

我正在为我的项目使用SeleniumWebDriver。我已经将代码自动化,将鼠标移到图像上,这已成功完成。但是,有些人告诉我,我怎么能用这个代码将鼠标移到超链接上

我使用的代码是

Actions build1=新操作(驱动程序);
build1.moveToElement(WebElement.build().perform()

我也试过使用

Locatable hoverItem=(Locatable)driver.findElement();
鼠标=((HasInputDevices)驱动程序).getMouse();
mouse.mouseMove(hoverItem.getCoordinates())

但它也不起作用。请帮我做这个

试试这个:

Actions action = new Actions(webdriver);
WebElement we = webdriver.findElement(By.xpath("x_p_a_t_h"));
action.moveToElement(we).build().perform();

我在
DefaultSelenium
类中使用了
public void mouseOver(String)
方法。守则的要点如下:

protected void hoverAction() {
    WebDriverBackedSelenium webDriver = some_elaborate_method_to_get_webdriver;
    webDriver.mouseOver("x_p_a_t_h");
}

您可能还需要考虑在悬停时放置某种等待时间,以确保元素在失败之前得到渲染(例如,通常从链接启动的弹出菜单不会立即出现)。

所有其他海报都张贴了我能想到的所有建议,但似乎没有一个可行。当我说到这一点时,我后退一步,问自己为什么需要将鼠标悬停在超链接上。只是为了检查alt文本吗?如果是这种情况,我将使用element.getAttribute(“alt”)并验证文本是否符合我的预期。我不需要测试浏览器悬停功能。我唯一能建议的另一件事是确保运行测试时鼠标光标不在浏览器窗口上。这也可以摆脱鼠标悬停。

我也遇到了同样的问题,通过将光标移动1px解决了这个问题。最后一行触发了悬停事件

Actions action = new Actions(driver);
action.moveToElement(element).build().perform();
action.moveByOffset(1, 1).build().perform();

这与他最初的
Actions build1=新操作(驱动程序)有什么不同;build1.moveToElement(WebElement.build().perform()?@SudharsanSrinivasan您可能需要确保元素已加载。在我的实现中(我们已经对WebDriver进行了相当详细的扩展,以获得一个单例实例),我们只在加载元素后才使用hoverAction。在使用FirefoxDriver时,在这方面我没有任何测试失败。是的,元素已加载。我可以点击超链接。但是不能用鼠标移到它上面。谢谢你的回复。当鼠标悬停在超链接上时,我需要获取超链接的颜色。关于第二点,是的。运行测试时,光标不在浏览器窗口上。