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

hover over an animation menu and click a menu item in selenium

我试图将鼠标悬停在动画菜单和 select 菜单中的项目上。我尝试先通过 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();

这也引发了同样的异常。

有什么想法可以实现动画菜单项中的点击吗?

查找并存储 Web 元素

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