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

时间:2016-03-07 22:44:21

标签: selenium-webdriver serenity-bdd

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

我正在使用以下代码:

@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();

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

0 个答案:

没有答案