gpt4 book ai didi

java - 使用 Java 的 Selenium WebDriver 中的 moveToElement 鼠标悬停功能不稳定

转载 作者:行者123 更新时间:2023-11-30 02:44:02 32 4
gpt4 key购买 nike

我正在使用 Selenium 3.0.1 使用 TestNG 运行自动化测试。在一项测试中,我尝试将鼠标悬停在操作菜单上,然后单击该菜单中的一个选项:

Actions builder = new Actions(getWebDriver());
builder.moveToElement(actionButton).build().perform();

但是测试不稳定。我可以看到菜单打开但立即关闭,因此测试失败,因为它不再找到该选项。我收到此错误:

java.lang.IllegalArgumentException: Must provide a location for a move action.
at org.openqa.selenium.interactions.MoveMouseAction.<init>(MoveMouseAction.java:30)
at org.openqa.selenium.interactions.Actions.moveToElement(Actions.java:251)

如何检查菜单是否打开? Perform() 方法返回 void。我注意到如果我调用 moveToElement 两次,测试就会更加稳定。有什么优雅的选择吗?

Actions builder = new Actions(getWebDriver());
builder.moveToElement(actionButton).build().perform();
builder.moveToElement(actionButton).build().perform();

当我们将鼠标悬停在菜单上时,菜单如下所示: hover over menu

我发现这个问题: https://sqa.stackexchange.com/questions/3467/issue-with-losing-focus-of-hover-command-when-the-mouse-is-outside-of-the-acti这最好地解释了我的问题。不幸的是,仍然没有解决办法。

最佳答案

如果您不需要打开菜单,请尝试使用JavascriptExecutor单击该选项。 JavascriptExecutor 也可以单击隐藏元素,使用 JavascriptExecutor 触发单击所需要的只是该元素存在于 DOM 上。

代码片段(Java):

((JavascriptExecutor)driver).executeScript("arguments[0].click()", driver.findElement(By.cssSelector("hiddenOptionFromMenu")));

关于java - 使用 Java 的 Selenium WebDriver 中的 moveToElement 鼠标悬停功能不稳定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40768607/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com