2011-03-11 56 views
4

我在VS2010測試項目中有一個簡單的Selenium測試,如下所示。Selenium測試在「服務器沒有響應」錯誤的構建服務器上失敗

[TestMethod] 
public void MyTestInIE8() 
{ 
    IWebDriver driver = new InternetExplorerDriver(); 
    try 
    { 
     driver.Navigate().GoToUrl("http://localhost/MyMVC/ABC/DoStuff"); 
     driver.FindElement((By.Id("Name"))).SendKeys("John"); 
     //... run rest of the test 
    } 
    finally 
    { 
     driver.Quit(); 
    } 
} 

這在本地服務器上運行良好。但是,在構建服務器上,它會失敗並顯示以下消息。 ...拋出異常:OpenQA.Selenium.WebDriverException:服務器對url http://localhost:4444/session/5e5e9b7a-e05c-40d8-9a20-9cab138b2b87沒有響應。

問題似乎是在finally子句中調用Quit()方法。我嘗試傳入一個已知的端口號,即InternetExplorerDriver(8080),但它沒有任何區別。 Firefox驅動程序可以在本地和構建服務器上正常運行。我發現有人報告類似的問題,但沒有找到工作解決方案。 http://groups.google.com/group/webdriver/msg/4347971da4d96e97

這是我的配置。 Windows 7 professional SP1,64位。
Webdriver - selenium-dotnet-2.0b2。
IE8。

我的構建服務器是帶有IE8的Windows Server2008 R2 Standard。
謝謝。

+0

問題是否解決。即使我在同一個環境中也面臨同樣的問題。 – Chidambaram 2011-05-02 11:02:56

回答

5

Internet Explorer驅動程序需要對project wiki中所述的IE進行一些配置。您需要確保瀏覽器在您的構建服務器上正確配置。

最近更新了Selenium項目,在IE驅動程序配置不正確的情況下拋出了更多有用的錯誤。更新到2.0rc2會給你這個更有用的錯誤。

+0

按照你的建議做了,現在它給出錯誤,System.InvalidOperationException:意外的錯誤啓動Internet Explorer。所有區域的保護模式必須設置爲相同的值(啓用或禁用)。 (NoSuchDriver)。我在生成服務器上安裝了IE 9。嘗試啓用所有區域以及禁用所有區域。縮放設置爲100%。 OpenQA.Selenium.WebDriverException:服務器沒有響應url http:// localhost:7055/hub/session/feb99703-822e-4b59-892a-884e3d28b66 ... – Redzon 2011-06-08 16:01:41

+1

我們發現用於運行構建的a/c未在代理服務器上進行身份驗證,而我自己的帳戶是。代理服務器可能已經進入了圖片,因爲我們最近開始使用CDN來下拉jQuery。因此,繞過代理服務器(在瀏覽器上使用Internet選項)對問題進行了排序。 – Redzon 2011-07-01 08:41:16

3

我也有這個問題,我發現的解決方案是在對元素進行操作之前,先使用FindElement()方法等待一段時間。

事情是這樣的:

var element = driver.FindElement(By.Id("Name")) 
Thread.Sleep(200); 
element.SendKeys("John"); 

顯然有造成駕駛員一些競爭條件。無論如何,這是我的猜測。

相關問題