MoveToElement仅在使用xOffset和yOffset时有效

时间:2016-05-30 11:13:40

标签: java selenium firefox

在侧边栏菜单中,我想移动到菜单项。我使用此代码:

@FindBy(xpath =" .//* [@ id =' sidebar-wrapper'] / ul // a [contains(text(),' Contact&#39 ;)]&#34) WebElement contactLink;

public void clickHamburgerMenuAndContactLink() {
    Actions action = new Actions(driver);
    action.click(hamburgerMenu).moveToElement(contactLink, 0, 0).click().perform();

}

这大部分时间都有效,虽然它也经常失败(行为似乎不稳定)。

首先,我尝试移动而不提及x和y Offset仅使用webelement contactlink作为moveToElement方法中的参数。这根本不起作用,我不明白为什么。我在perform()之前也尝试使用build(),但这没什么区别。

1 个答案:

答案 0 :(得分:0)

不稳定的行为可能是由于动画效果导致联系链接不稳定。我会等待关闭按钮,因为一旦菜单到达其最终位置就显示它:

public void clickHamburgerMenuAndContactLink() {
    WebDriverWait wait = new WebDriverWait(driver, 10000);
    hamburgerMenu.click();
    wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("menu-close")));
    contactLink.click();
}