4

我正在为我的项目使用 Selenium Webdriver。我已经自动化了代码以将鼠标悬停在图像上,这已成功完成。但是,有些我无法使用此代码将鼠标悬停在超链接上。

我使用的代码是

Actions build1 = new Actions(driver); build1.moveToElement(WebElement).build().perform();

我也尝试过使用

Locatable hoverItem = (Locatable) driver.findElement(); Mouse mouse = ((HasInputDevices) driver).getMouse(); mouse.mouseMove(hoverItem.getCoordinates())

但这也行不通。请帮助我

4

4 回答 4

1

我有同样的问题并通过将光标移动 1px 来解决它。最后一行触发了悬停事件。

Actions action = new Actions(driver);
action.moveToElement(element).build().perform();
action.moveByOffset(1, 1).build().perform();
于 2014-11-04T14:16:22.170 回答
0

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

于 2013-08-01T15:31:41.147 回答
0

我在课堂上使用过该public void mouseOver(String)方法。DefaultSelenium代码的实质如下:

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

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

于 2013-07-31T19:49:59.283 回答
0

尝试这个:

Actions action = new Actions(webdriver);
WebElement we = webdriver.findElement(By.xpath("x_p_a_t_h"));
action.moveToElement(we).build().perform();
于 2013-07-31T15:30:34.257 回答