2016-07-20 83 views
0

試圖遠程執行硒測試時發生堵塞。我們正在嘗試在我們的TeamCity服務器上執行我們的Selenium測試。我知道這是一個壞主意,但這不是我來這裏的原因。 超級鹼性Nunit selenium webdriver/chrome。Selenium Teamcity Chromedriver IWebDriver chrome不會啓動

[TestFixture] 
public class Mytest1 
{ 
    private IWebDriver driver; 
    private StringBuilder verificationErrors; 
    private string baseURL; 
    private bool acceptNextAlert = true; 

    [SetUp] 
    public void SetupTest() 
    { 

     ChromeOptions options = new ChromeOptions(); 
     options.AddArgument("\"no-sandbox\""); 
     driver = new ChromeDriver(options); 
     baseURL = "http://example.com/"; 
     verificationErrors = new StringBuilder(); 
    } 

    [TearDown] 
    public void TeardownTest() 
    { 
     try 
     { 
      driver.Quit(); 
     } 
     catch (Exception) 
     { 
      // Ignore errors if unable to close the browser 
     } 
     Assert.AreEqual("", verificationErrors.ToString()); 
    } 

    [Test] 
    public void TheMytest1Test() 
    { 
     driver.Navigate().GoToUrl(baseURL + "/somepage/"); 
     driver.FindElement(By.LinkText("linktest")).Click(); 
     driver.FindElement(By.CssSelector("div.container-div.caption")).Click(); 
    } 

當我運行這個從我VS看到「2.22版本開始等.. chromeDriver只允許本地連接。」測試運行100%。 我將我的更改提交給teamcity(v9.x),我擁有一個Nunit任務運行器。反對測試。這是它消失的地方。直接在構建服務器上測試我在構建日誌中看到以下內容。

[18:07:43][Step 3/5] Starting ChromeDriver 2.22.397933 (1cab651507b88dec79b2b2a22d1943c01833cc1b) on port 50513 
[18:07:43][Step 3/5] Only local connections are allowed. 
[18:08:46] 
[SeleniumTests.Mytest1.TheMytest1Test] OpenQA.Selenium.WebDriverException : The HTTP request to the remote WebDriver server for URL http://localhost:50513/session timed out after 60 seconds. 
    ----> System.Net.WebException : The operation has timed out 
TearDown : System.NullReferenceException : Object reference not set to an instance of an object. 
[18:08:46] 
[SeleniumTests.Mytest1.TheMytest1Test] at OpenQA.Selenium.Remote.HttpCommandExecutor.CreateResponse(WebRequest request) 
    at OpenQA.Selenium.Remote.HttpCommandExecutor.Execute(Command commandToExecute) 
    at OpenQA.Selenium.Remote.DriverServiceCommandExecutor.Execute(Command commandToExecute) 
    at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters) 
    at OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilities desiredCapabilities) 
    at OpenQA.Selenium.Remote.RemoteWebDriver..ctor(ICommandExecutor commandExecutor, ICapabilities desiredCapabilities) 
    at OpenQA.Selenium.Chrome.ChromeDriver..ctor(ChromeOptions options) 
    at SeleniumTests.Mytest1.SetupTest() 
--WebException 
    at System.Net.HttpWebRequest.GetResponse() 
    at OpenQA.Selenium.Remote.HttpCommandExecutor.CreateResponse(WebRequest request) 
--TearDown 
    at SeleniumTests.Mytest1.TeardownTest() 

我可以這樣做是試圖用chrome.exe做一些事情,但不會去它。這是不斷彈出的錯誤。任何想法如何解決這個問題?我的假設是,這是一個權限相關的問題,但完全停滯不前。

enter image description here

回答

0

這個問題似乎是與你的瀏覽器選項。
options.AddArgument("\"no-sandbox\"");
好像應該是options.AddArgument("--no-sandbox");
您還指定二進制文件的位置?

+0

我現在正在追逐它作爲權限類型的東西。我通過nunit控制檯運行器運行測試,並立即在服務器上啓動測試,我需要運行測試。我假定問題可能是由於構建代理作爲本地服務運行的。 – macm

0

對我來說,答案就是buildagent作爲本地服務運行。一旦我改變它作爲一個本地用戶帳戶運行,所有的東西都開箱即用。

0

自從ch v 51發佈以來,這個問題一直困擾着我。這是因爲chrome進程在會話[0]中開始使chrome無響應。 https://bugs.chromium.org/p/chromium/issues/detail?id=615396

這是我一直在追蹤這個問題的錯誤。一個修復程序應該是今天與Chrome v 52發佈,但這並沒有解決我的問題。所以我不確定修復是否真的被釋放,或者我遇到了不同的問題。

相關問題