我正在一个左手主菜单有子菜单的页面上工作。我尝试将鼠标悬停在主菜单项上,它将显示子菜单,然后我将单击子菜单。
我正在使用以下代码:
@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();
主菜单有时会非常快速地闪烁,好像它的点击非常快并且后退,有时它似乎没有被点击或徘徊。
由于此悬停和点击活动在用户导航到页面后立即发生,我在主菜单上添加了wait for element,但它似乎不起作用。
任何想法如何解决问题?我不明白为什么只有在浏览器处于全屏模式时才会发生这种情况。我能想到的唯一原因是主菜单元素需要更多的时间来加载。
编辑:
顺便说一句,Chrome中的问题非常严重。 Firefox更好,但不是100%工作。看起来即便是简单的悬停:
mainmenu.waitUntilPresent();
Actions builder = new Actions(getDriver());
builder.moveToElement(mainmenu)perform();
并不总是使主菜单显示其子菜单。我不明白为什么它不起作用。