java - Selenium 悬停功能在第二次调用时不起作用
问题描述
我需要将光标悬停在工具提示上,然后检查里面的文本是否有不同的产品。但是 hover() 函数在第二次调用时不会将光标移动到工具提示。我怎样才能让它在后续调用中也起作用?
我试过以下:
final StringJoiner tooltipIconClassStringJoiner = new StringJoiner(" ");
tooltipIconClassStringJoiner.add(format(MULTI_CART_ENTRY_ID_FORMAT, productCode));
tooltipIconClassStringJoiner.add(MAINTENANCE_SECTION);
tooltipIconClassStringJoiner.add(TOOLTIP_ICON);
final SelenideElement element = $(tooltipIconClassStringJoiner.toString());
element.shouldBe(visible);
element.hover();
final StringJoiner maintenanceTooltipStringJoiner = new StringJoiner(" ");
maintenanceTooltipStringJoiner.add(format(MULTI_CART_ENTRY_ID_FORMAT, productCode));
maintenanceTooltipStringJoiner.add(format(MAINTENANCE_TOOLTIP, productCode));
$(maintenanceTooltipStringJoiner.toString()).shouldBe(visible);
我也尝试过采取行动:
new Actions(webDriverUtils.getDriver()).moveToElement(element).perform();
但是这两个选项仅适用于第一次调用 hover/moveToElement 函数。
解决方案
我对Java不熟悉。
但我认为您应该在第二次 hover() 之前再次获取元素。
使用 For 循环来包装下面的代码。
// get element that you want to hover first.
Actions(webDriverUtils.getDriver()).moveToElement(element).perform();
推荐阅读
- javascript - highchart使用ajax转php+mysql
- excel - 不要将一个 with/end with 包装成另一个 with/end with 语句
- amazon-dynamodb - 带有rockset和dynamodb的Grafana地图
- javascript - 如何在有限的时间内在 vanilla JS 中添加一个类?
- javascript - var username= '<%=Session["username"]%>' for access session value in javascript 不起作用
- spring-boot - Spring REST secure 仅删除拥有的(由应用程序最终用户创建的,ONLY)资源
- c - 如何制作可以不带参数调用的 __VA_ARGS__ 宏?
- swift - 通过对象从数组中删除
- python - 在循环中保存多个线性回归模型
- c - Execlp 没有正确变异