自从升级到 Firefox 19 后,我的测试中断了,我需要将鼠标悬停在链接上以显示子菜单。在 Firefox 19 之前,以下工作就像一个魅力:
/*
* Hover over column header
*/
WebElement columnsRoot = driver.findElement(By.xpath(COLUMNS_ROOT_XPATH));
WebElement firstColumn = columnsRoot.findElement(By.xpath("./td[1]/div"));
Actions builder = new Actions(driver);
builder.moveToElement(firstColumn).build().perform();
/*
* Click on dropdown button after it appears
*/
WebElement dropdown = columnsRoot.findElement(By.xpath("./td[1]/div/a"));
dropdown.click();
Thread.sleep(500);
/*
* Hover over columns menu
*/
String columnsMenuXpath = "(//div[@class=\" x-ignore x-menu x-component\"]//a)[3]";
WebElement columnsMenu = driver.findElement(By.xpath(columnsMenuXpath));
builder.moveToElement(columnsMenu).build().perform();
将鼠标悬停在上方的列菜单上后,将出现一个子菜单,其中包含我将迭代显示的列列表。在我升级到 Firefox 19 后,最后一步中的子菜单只是暂时出现然后消失,这会导致一堆 NoSuchElementException 异常,显然是因为子菜单不存在并且我仍在尝试单击某些内容。
将鼠标悬停在菜单上后,我尝试使用另一个动作移动到子菜单中的某个项目,希望这会使子菜单保持打开状态,但没有这样的运气。
有没有其他人遇到过这个问题?如果是这样,是否有解决方法或什么?
我正在使用 selenium 2.31.0,由于与 Firefox 19 的不兼容问题,我从 2.28.0 升级到了今天。