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 例外が大量に発生します。これは明らかに、サブメニューが存在せず、まだ何かをクリックしようとしているからです。
メニューにカーソルを合わせた後、別のアクションを使用してサブメニュー内の項目に移動しようとしましたが、サブメニューを開いたままにしておきますが、そのような運はありませんでした。
他の誰かがこの問題に遭遇しましたか? もしそうなら、回避策か何かがありますか?
Firefox 19 との非互換性の問題により、今日 2.28.0 からアップグレードした selenium 2.31.0 を使用しています。