2016-11-09 60 views
0

我在Teamcity構建服務器上運行Selenium測試。但測試不能啓動,在該錯誤消息:Selenium webdriver連接超時

OpenQA.Selenium.WebDriverException:HTTP請求到遠程 的webdriver 服務器URL http://localhost:56064/session 120秒後的超時。 ----> System.Net.WebException:操作已超時

測試基類(縮寫):

public abstract class TestBase<T> where T : IWebDriver, new() 
{ 
    protected IWebDriver Driver { get; set; } 


    [TestFixtureSetUp] 
    public void Setup() 
    { 
     this.Driver = new T(); 
    } 

    protected void GotoUrl(string url) 
    { 
     var completeUrl = UrlFactory.Instance.GetTestUrl(url); 

     Console.WriteLine("Starting test at " + completeUrl); 

     this.Driver.Navigate().GoToUrl(completeUrl); 

    } 

} 

Test類:

[TestFixture(typeof(FirefoxDriver))] 
public class Dashboard<T> : TestBase<T> where T : IWebDriver, new() 
{ 
    private const string Url = "RM/Dashboard/dashboard.aspx"; 

    [Test] 
    public void HasCorrectHeading() 
    { 
     // Arrange   
     this.GotoUrl(Url); 

     // Act 
     var heading = this.Driver.FindElement(By.CssSelector(".pageheaderContainerxboxcontent span.H1")); 

     // Assert 
     Assert.That(heading, Is.Not.Null); 
    } 
} 

試驗運行在本地開發機器上很好,可能會出錯?

Visual Studio解決方案:

  • Selenium.WebDriverBackedSelenium 3.0.0.0
  • ThoughtWorks的:與以硒
  • 單獨的用戶界面的測試項目,這些引用不引用

    • Web項目.Selenium.Core 3.0.0.0
    • WebDriver 3.0.0.0
    • WebDriver.Support 3.0.0.0

所有的DLL引用:S,不是的NuGet飼料。

將文件'geckodriver.exe'和'chromedriver.exe'複製到UI測試項目bin-folder在生成後事件中。

在Windows服務器上運行的TeamCity 10 2008 R2 SP 1

回答

1

像往常一樣,當你不得不解釋到底發生了什麼,你絆倒...

我意識到TeamCity服務器上的Firefox很舊(v 30),所以我將它更新到最新版本,並突然 - 測試運行! :-)

+0

是的,我完全面臨同樣的問題。我更新了驅動程序,它工作。 –

+0

好的,但我更新了我的生成機器上的Firefox瀏覽器,而不是驅動程序。 –

+0

@NiklasRingdahl如果您接受答案,其他人將能夠更輕鬆地看到您的解決方案。 AFAIK絕對可以接受你自己的回答 – cyberskunk

0

後GoToURL()方法中添加如下一行:

driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(10)); 
+0

謝謝,但GotoUrl方法永遠不會被調用,TestSetup失敗。 –