Я использую Selenium с ChromeDriver in. NET Core. Все тесты работают нормально локально, однако в TeamCity дают сбой со следующей ошибкой:
Starting ChromeDriver 80.0.3987.106 (f68069574609230cf9b635cd784cfb1bf81bb53a-refs/branch-heads/3987@{#882}) on port 24272
Only local connections are allowed.
Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.
...
OneTimeSetUp: OpenQA.Selenium.WebDriverException : Cannot start the driver service on http://localhost:24272/
После завершения тестов chromedriver.exe
не прекращается. В журнале событий Windows или в дополнительных подробностях в журналах сборки ничего нет, поэтому я сейчас в темноте.
Я использую следующие аргументы, некоторые добавлены из отчаяния:
var options = new ChromeOptions();
options.AddArgument("--headless");
options.AddArgument("--remote-debugging-port=9222");
options.AddArgument("--no-sandbox");
options.AddArgument("--no-first-run");
// See https://bugs.chromium.org/p/chromium/issues/detail?id=737678
options.AddArgument("--disable-gpu");
Driver = new ChromeDriver(options);
Интересно, что порт удаленной отладки! = Порт при первой ошибке. Не уверен, что это что-то значит. Документация Chromedriver предполагает, что опции добавляются без начального --
, но удаление этого, похоже, не имеет никакого эффекта.
ПОКАЗАТЬ, что агент TeamCity работает как локальный Windows служебная учетная запись на Windows Server 2008 R2 (да, я знаю).