我正在为我的项目使用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())
但它也没有成功。请帮帮我
答案 0 :(得分:1)
我有同样的问题并通过将光标移动1px来解决它。最后一行触发了悬停事件。
Actions action = new Actions(driver);
action.moveToElement(element).build().perform();
action.moveByOffset(1, 1).build().perform();
答案 1 :(得分:0)
试试这个:
Actions action = new Actions(webdriver);
WebElement we = webdriver.findElement(By.xpath("x_p_a_t_h"));
action.moveToElement(we).build().perform();
答案 2 :(得分:0)
我在public void mouseOver(String)
课程中使用了DefaultSelenium
方法。代码的本质如下:
protected void hoverAction() {
WebDriverBackedSelenium webDriver = some_elaborate_method_to_get_webdriver;
webDriver.mouseOver("x_p_a_t_h");
}
您可能还需要考虑在悬停时放置某种等待时间以确保在失败之前渲染元素(例如,飞出菜单,通常从链接启动时不会立即显示)。
答案 3 :(得分:0)
所有其他海报都贴出了我能提出的所有建议,但似乎都没有。当我到达这一点时,我退后一步,问我为什么需要将鼠标悬停在超链接上。是否只是检查替代文字?如果是这种情况,我会使用element.getAttribute(“alt”)并只验证文本是我所期望的。我不需要测试浏览器悬停功能。我建议的另一件事是确保在运行测试时鼠标光标不在浏览器窗口上。这也可以甩掉鼠标。