我正在处理左侧主菜单具有子菜单的页面。我尝试将鼠标悬停在主菜单项上,它会显示子菜单,然后我将单击子菜单。
我正在使用以下代码:
@FindBy(id = "xxx")
private WebElementFacade mainmenu;
@FindBy(id = "yyy")
private WebElementFacade submenu;
Actions builder = new Actions(getDriver());
builder.moveToElement(mainmenu).perform();
submenu.waitUntilClickable().click();
我尝试了其他方法,例如:
action.moveToElement(mainmenu).moveToElement(submenu).click().build().perform();
似乎问题是:当浏览器全屏时执行测试时,即
driver.manage().window().maximize();
主菜单有时会快速闪烁,就好像它被快速点击并后退一样,有时它似乎根本没有被点击或悬停。
因为此悬停和单击活动在用户导航到页面后立即发生,所以我在主菜单上添加了等待元素,但它似乎不起作用。
任何想法如何解决这个问题?我不明白为什么只有在浏览器处于全屏模式时才会发生这种情况。我能想到的唯一原因是主菜单元素需要更多时间来加载。
编辑:
顺便说一句,这个问题在 Chrome 中非常严重。Firefox 更好,但也不是 100% 工作。似乎即使是简单的悬停:
mainmenu.waitUntilPresent();
Actions builder = new Actions(getDriver());
builder.moveToElement(mainmenu)perform();
并不总是使主菜单显示其子菜单。我不明白为什么它不起作用。