1

どこでも検索した後、Mac OSX で Firefox 16.0.2 および Selenium 2.28 でマウスオーバー イベントを動作させるための解決策が見つからないようです (これはおそらく Mac OSX 固有の問題だと思いますが、このコードは Windows マシンで動作するはずです)。 )。私は何かElseOnScreenを明らかにするはずのobjectOnScreenの上に置く次のものを持っています:

//set enable native events is suggested by another post to make these native events work
FirefoxProfile prof = new FirefoxProfile(); 
prof.setEnableNativeEvents(true); 
WebDriver driver = new FirefoxDriver(prof);

// Hover over objectOnScreen which should reveal somethingElseOnScreen
Action builder;
Actions hover = new Actions(driver);
WebElement objectOnScreen = driver.findElement(By.xpath("//..."))
hover.moveToElement(objectOnScreen);
builder = hover.build();
builder.perform();

// Click something new that should appear on screen
By somethingElseOnScreen = By.xpath("//...");
WebDriverWait wait = new WebDriverWait(driver, 5L);
wait.until(ExpectedConditions.visibilityOfElementLocated(somethingElseOnScreen));
driver.findElement(somethingElseOnScreen).click();

このコードは Chrome では機能しますが、Firefox では機能しません。Firefox では、somethingElseOnScreen は表示されず (wait.until... 行で NoSuchElementException が発生します)、ブラウザを見てもホバーが機能していません。

私もこれら2つのことを試しましたが、どちらも問題を解決しません:

  • ホバー アクションとクリック アクションの両方でビルダー アクションを構築する
  • EventFiringMouse を使用して画面上のそのポイントにカーソルを合わせますが、これも Firefox では機能しません (ただし、Chrome では問題ありません)。

この問題の回避策はありますか?

ありがとうございました。

4

1 に答える 1

1

display私の回避策は、要素のcssプロパティをinline(またはblock-HTMLコードに応じて)非表示で「マウスオーバー」に表示されるように手動で変更することでした(または同じイベントに必要な要素を追加するJavaScriptを呼び出します-あなたのHTMLコード)。

3つのことを教えていただければ、具体的にどのようなコードを書くことができるかを教えていただけます:

  1. Selenium に使用している言語
  2. 前の要素の HTML/css プロパティmouseover
  3. 後の要素の HTML/css プロパティmouseover
于 2012-12-25T16:32:41.747 に答える