Моя текущая цель - сделать так, чтобы Jenkins развернул Windows Servercore docker контейнер с установленным chrome, который мой тест на селен будет запускать локально в режиме без головы.
Я застрял и сделал изрядное количество исследований. Большинство людей отметили, что добавление аргумента --no-sandbox решит эту проблему. Однако это не так для меня. Я также добавил довольно много аргументов, как упомянули люди, но не повезло:
options.AddArguments("--headless");
options.AddArguments("--no-sandbox");
options.AddArguments("--disable-gpu");
options.AddArguments("--disable-dev-shm-usage");
Я убедился, что оба chromedriver и chrome установлены одинаково:
- Chrome драйвер от Nuget: Selenium.WebDriver.ChromeDriver.80.0.3987.10600
- Chrome браузер установлен через chocolatey: ChromeDriver 80.0.3987.106
У кого-нибудь еще есть Решение, которое я еще не пробовал? Трассировка стека ниже
Starting ChromeDriver 80.0.3987.106 (f68069574609230cf9b635cd784cfb1bf81bb53a-refs/branch-heads/3987@{#882}) on port 49205
Only local connections are allowed.
Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.
TestLibrary.Tests.Test1 [STARTING]
TestLibrary.Tests.Test1 [FAIL]
OpenQA.Selenium.WebDriverException : unknown error: Chrome failed to start: crashed.
(chrome not reachable)
(The process started from chrome location C:\Program Files (x86)\Google\Chrome\Application\chrome.exe is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
Stack Trace:
at OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse)
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(ChromeDriverService service, ChromeOptions options, TimeSpan commandTimeout)
at OpenQA.Selenium.Chrome.ChromeDriver..ctor(String chromeDriverDirectory, ChromeOptions options, TimeSpan commandTimeout)
TestLibrary\Setup.cs(56,0): at TestLibrary.Setup.LocalChromeDriver()
TestLibrary\Pages\PageBase.cs(77,0): at TestLibrary.Pages.PageBase.InitializeDriverAndWait()
TestLibrary\Pages\PageBase.cs(87,0): at TestLibrary.Pages.PageBase..ctor(Boolean navigateImmediately)
at TestLibrary.Pages.LoginPage..ctor()
TestLibrary\Actions.cs(33,0): at TestLibrary.Actions.Login(String username, String password)
TestLibrary\Fixtures\AutoFixture.cs(34,0): at TestLibrary.Fixtures.AutoFixture.Login()
TestLibrary\Fixtures\AutoFixture.cs(23,0): at TestLibrary.Fixtures.AutoFixture..ctor()
TestLibrary.Tests.Test1 [FINISHED] Time: 0s
Finished: TestLibrary