4

Firefox 15 にアップグレードして以来、Selenium テストが機能しなくなりました。私は selenium-firefox-driver-2.25.0 と selenium-java-2.25.0 を使用しています。具体的には、GWT ドロップダウン メニューの項目など、特定の要素の "クリック" に失敗しています。

この種の問題を抱えているのは私だけですか?Firefox 15 は単に Selenium には「新しすぎる」ため、2.25.1 のリリースがすぐに続くのではないかと思っていましたが、Firefox 15 がリリースされてからしばらく経ちました。

テストはすべて Firefox 14.0.1 で正常に動作します。Selenium は Firefox 15 の「ネイティブ イベント」をサポートしていますか?

4

2 に答える 2

1

最新バージョンの Firefox (15.0) と現在の 2.25 Selenium で同様の問題が発生しました。メニュー ヘッダーにカーソルを合わせると、メニュー オプションが表示される Javascript ベースの水平メニューがあります。IWebDriver私が使用しているコードは次のとおりです。

var menu = driver.FindElement(By.Id("menuId"));
var option = driver.FindElement(By.Id("menuItemId"));

WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));

Actions actions = new Actions(driver);
actions.MoveToElement(menu, 5, 5).Perform();

wait.Until<bool>((d) =>
{
    return option.Displayed;
});

option.Click();

これは IE と Chrome では問題なく動作しますが、Firefox では動作しません。「mouseOver」( MoveToElement) アクションが発生しないため、メニュー項目が表示されず、テストがタイムアウトします (そして失敗します)。

NUnit からテストを実行しているので、テスト コードに少し構成サポートが組み込まれているので、Web ドライバーを直接使用するか、WebDriverBackedSelenium(もちろん RC サーバーと組み合わせて)を使用するかを制御できます。 . これにより、構成の問題を回避できるため、「Firefox モード」でテストを実行している場合は、サーバーを呼び出して、ISelenium代わりに次のようにインターフェイスを使用できます。

selenium.Click("id=menuItemId");

そしてそれはうまくいきます。テストが実行されている「モード」を決定し、それに応じて特定のクリックアクションを呼び出すメソッドがあります。つまり、IWebDriverインターフェイスを直接使用するか、インターフェイスWebDriverBackedSeleniumを使用するためにラップするかを選択しISeleniumます。

将来、Firefox ドライバーが機能し始めた場合は、再度構成を介してネイティブで Firefox Web ドライバーを使用するように切り替えることができます。

于 2012-09-13T14:42:21.930 に答える
1

同様の問題に遭遇しました.seleniumテストスイートは、更新されたばかりのffox(14.0)で開始できませんでした。私が見つけた唯一の解決策は、以前の ffox バージョンにロールバックすることです。

于 2012-09-10T13:59:25.610 に答える