2

ボタン (href として内部的に実装されている EXPAND_CONTEXT_MENU など) をクリックすると、その下に非表示のコンテキスト メニューが展開され、その後、コンテキスト メニューのメニュー項目をクリックする Web ページがあります。

Selenium 2 では非表示の要素に直接アクセスできないため、まず EXPAND_CONTEXT_MENU をクリックしてから、目的のメニュー項目をクリックします。

このソリューションをテストしようとすると、InternetExplorerDriver が奇妙な動作を示します。EXPAND_CONTEXT_MENU を最初にクリックすると、メニューが正常に展開されますが、2 回目のクリック (メニュー項目を選択するため) が発生する前に、EXPAND_CONTEXT_MENU が再び最小化されます。これにより、2 回目のクリックが発生したときに ElementNotVisibleException が発生します。

FirefoxDriver はこのテストをうまく実行します。テストには IE8 と Firefox を使用しています。

注 - 実際の AUT では、EXPAND_CONTEXT_MENU にカーソルを合わせるだけでコンテキスト メニューが展開されます。

4

2 に答える 2

0

マウス機能を使用して、関連する要素の上にマウスを置きます。

Locatable hoverItem = (Locatable) driver.findElement(By.xpath("//foo")); 
Mouse mouse = ((HasInputDevices) driver).getMouse();
mouse.mouseMove(hoverItem.getCoordinates());

ロケータブルをインポートする必要があります。デフォルトでは取り込まれていません:

import org.openqa.selenium.internal.Locatable;
于 2011-05-25T10:42:08.287 に答える