我正在尝试将鼠标悬停在动画菜单上,然后在菜单中选择一个项目。我尝试先用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();
也会引发同样的异常。
在动画菜单项中实现点击的任何想法?
答案 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();