将鼠标悬停在动画菜单上,然后单击selenium中的菜单项

时间:2016-05-23 09:20:12

标签: java selenium selenium-webdriver hover click

我正在尝试将鼠标悬停在动画菜单上,然后在菜单中选择一个项目。我尝试先用xpath在菜单上执行悬停,然后按xpath点击菜单项,如下所示。

WebElement ch = driver.findElement(By.xpath(".//*[@id='menu-item-24463']/a"));
builder.moveToElement(ch).perform();
WebElement ch1 = driver.findElement(By.xpath(".//*[@id='menu-item-24463']/div/ul/li[1]/a"));
ch1.click();

我得到了一个例外

org.openqa.selenium.interactions.MoveTargetOutOfBoundsException:元素内的偏移量无法滚动到视图中

我还尝试将操作链接如下

builder.moveToElement(ch).moveToElement(driver.findElement(By.xpath(".//*[@id='menu-item-24463']/div/ul/li[1]/a"))).click().build().perform();

也会引发同样的异常。

在动画菜单项中实现点击的任何想法?

1 个答案:

答案 0 :(得分:2)

查找并存储网络元素

WebElement ch = driver.findElement(By.xpath(".//*[@id='menu-item-24463']/a"));
WebElement ch1 = driver.findElement(By.xpath(".//*[@id='menu-item-24463']/div/ul/li[1]/a"));
Actions builder = new Actions(driver);

执行悬停

builder.moveToElement(ch).perform();

等待元素出现在视图和&执行点击

WebDriverWait wait = new WebDriverWait(driver,10);
wait.until(ExpectedConditions.visibilityOf(ch1));
ch1.click();