Selenium webdriver 当浏览器全屏打开时,为什么将鼠标悬停到元素并单击子菜单不起作用?

Selenium webdriver 当浏览器全屏打开时,为什么将鼠标悬停到元素并单击子菜单不起作用?,selenium-webdriver,serenity-bdd,Selenium Webdriver,Serenity Bdd,我在一个页面上工作,左侧主菜单有子菜单。我尝试将鼠标悬停到主菜单项,它将显示子菜单,然后单击子菜单 我正在使用以下代码: @FindBy(id = "xxx") private WebElementFacade mainmenu; @FindBy(id = "yyy") private WebElementFacade submenu; Actions builder = new Actions(getDriver()); builder.moveToElement(mainmenu).pe

我在一个页面上工作,左侧主菜单有子菜单。我尝试将鼠标悬停到主菜单项,它将显示子菜单,然后单击子菜单

我正在使用以下代码:

@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元素,但它似乎不起作用

有什么办法解决这个问题吗?我不明白为什么只有在浏览器处于全屏模式时才会发生这种情况。我能想到的唯一原因是主菜单元素需要更多的时间来加载

编辑:

顺便说一句,Chrome的问题非常严重。Firefox更好,但也不是100%有效。即使是简单的悬停:

mainmenu.waitUntilPresent();
Actions builder = new Actions(getDriver());
builder.moveToElement(mainmenu)perform();

并不总是使主菜单显示其子菜单。我不明白它为什么不起作用。

您能捕获Selenium IDE所需的操作吗?也许可以检查一下。您可以使用Selenium IDE到JUnit测试用例,演示如何将其输入Serenity BDD PageObjects。尝试单击并按住主菜单,然后移动到子菜单