试图远程执行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做一些事情,但只是没有得到它。这是一个不断弹出的错误。任何想法如何解决这个问题?我的假设是,这是一个与权限相关的问题,但完全停滞不前。
答案 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上发布一个修复程序,但这并没有解决我的问题。所以我不确定修复程序是否实际发布或者是否遇到了其他问题。