SessionNotCreated с использованием Selenium в контейнере Chrome DockerC#

Место общения программистов C#
Ответить
Anonymous
 SessionNotCreated с использованием Selenium в контейнере Chrome Docker

Сообщение Anonymous »

Я создал приложение .Net с использованием Selenium. Локально все работает нормально, но при использовании моего приложения в контейнере Docker я всегда получаю следующее исключение

Код: Выделить всё

System.InvalidOperationException: session not created: Chrome failed to start: exited normally.
(chrome not reachable)
(The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.) (SessionNotCreated)
at OpenQA.Selenium.WebDriver.UnpackAndThrowOnError(Response errorResponse, String commandToExecute)
at OpenQA.Selenium.WebDriver.ExecuteAsync(String driverCommandToExecute, Dictionary`2 parameters)
at OpenQA.Selenium.WebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters)
at OpenQA.Selenium.WebDriver.StartSession(ICapabilities capabilities)
at OpenQA.Selenium.WebDriver..ctor(ICommandExecutor executor, ICapabilities capabilities)
at OpenQA.Selenium.Chromium.ChromiumDriver..ctor(ChromiumDriverService service, ChromiumOptions options, TimeSpan commandTimeout)
at OpenQA.Selenium.Chrome.ChromeDriver..ctor(ChromeDriverService service, ChromeOptions options, TimeSpan commandTimeout)
at OpenQA.Selenium.Chrome.ChromeDriver..ctor(ChromeOptions options)
Я использую следующие аргументы при создании драйвера Chrome в своем приложении .Net

Код: Выделить всё

 var chromeOptions = new ChromeOptions();
if (OperatingSystem.IsLinux())
{
chromeOptions.BinaryLocation = "/usr/bin/google-chrome"; // Set the correct path to the Chrome binary
}

chromeOptions.AddArgument("--disable-dev-shm-usage");
chromeOptions.AddArgument("--no-sandbox");
chromeOptions.AddArgument("--disable-search-engine-choice-screen");
_webDriver = new ChromeDriver(chromeOptions);
Я использую образ Selenium Chrome, хотя он содержит мое приложение .Net, которое опубликовано как автономное.

Код: Выделить всё

#See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging.

FROM selenium/standalone-chrome:latest AS base
USER app
WORKDIR /app

FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
ARG BUILD_CONFIGURATION=Release
WORKDIR /src
COPY ["MyApp.csproj", "MyApp/"]
RUN dotnet restore "./MyApp.csproj"
COPY . .
WORKDIR "/src/MyApp"
RUN dotnet build "./MyApp.csproj" -c $BUILD_CONFIGURATION -o /app/build

FROM build AS publish
ARG BUILD_CONFIGURATION=Release
RUN dotnet publish "./MyApp.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=true --self-contained true -r linux-x64

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["./MyApp"]

EXPOSE 5000
Эта проблема возникает как в облаке, в котором я пытаюсь запустить контейнер, так и локально.

Подробнее здесь: https://stackoverflow.com/questions/792 ... -container
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»