我已經看到類似的問題與最新版本的火狐(15.0)和當前2.25硒。我有一個基於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的 - 在「鼠標懸停」(MoveToElement
)動作只是從未發生過這樣的菜單項從不可見和測試超時(並失敗)。
當我從NUnit運行測試時,我的測試代碼中內置了一些配置支持,因此我可以控制是直接使用Web驅動程序還是使用WebDriverBackedSelenium
(與當然是RC服務器)。這使我要解決與配置的問題,所以,如果我跑在「火狐模式」的測試,我可以調用服務器,然後使用ISelenium
接口,而不是像這樣:
selenium.Click("id=menuItemId");
和工作正常。我有一種方法確定測試運行的「模式」並相應地調用特定的點擊動作,即選擇直接使用IWebDriver
接口或通過WebDriverBackedSelenium
將其包裝,以使用ISelenium
接口。
如果Firefox驅動程序在將來開始工作,那麼我可以再次通過配置本地切換到使用Firefox Web驅動程序。
我也有一些問題......它看起來還有其他人也有問題:http://code.google.com/p/selenium/issues/detail?id=4486 – 2012-09-10 15:52:56