Selenium Teamcity Chromedriver IWebDriver chrome无法启动

时间:2016-07-20 18:26:41

标签: selenium teamcity selenium-chromedriver

试图远程执行selenium测试。我们正在尝试在TeamCity服务器上执行Selenium测试。我知道这是一个坏主意,但这并不是我在这里的原因。 超级基本Nunit硒webdriver /铬。

 [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运行时,我看到"启动chromeDriver ver 2.22等。只允许本地连接。 "测试运行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

3 个答案:

答案 0 :(得分:0)

问题似乎与您的Chrome选项有关。
options.AddArgument("\"no-sandbox\"");
好像它应该是options.AddArgument("--no-sandbox");
你还指定二进制文件的位置吗?

答案 1 :(得分:0)

对我来说,答案是buildagent是作为本地服务运行的。一旦我将其更改为以本地用户帐户身份运行,一切都开箱即用。

答案 2 :(得分:0)

自chrome v 51发布以来,这个问题一直困扰着我。这种情况正在发生,因为chrome进程在session [0]中开始,这使得chrome无响应。 https://bugs.chromium.org/p/chromium/issues/detail?id=615396

这是我一直关注跟踪问题的错误。应该会在Chrome v 52上发布​​一个修复程序,但这并没有解决我的问题。所以我不确定修复程序是否实际发布或者是否遇到了其他问题。