Модуль Selenium не работает в образе PowerShell Universal Docker LinuxLinux

Ответить
Anonymous
 Модуль Selenium не работает в образе PowerShell Universal Docker Linux

Сообщение Anonymous »

Я использую среду PowerShell Universal (PSU) на базе Docker в образе Linux и пытаюсь автоматизировать задачи с помощью модуля Selenium. Несмотря на успешную установку модуля, я столкнулся с рядом проблем при создании объектов Selenium, таких как ChromeOptions, или запуске браузеров, таких как Chrome и Firefox.
Сведения о среде:
  • ОС: Linux (Docker-контейнер)
  • Версия PowerShell: 7.3.9
  • Версия модуля Selenium: 3.0.1 (установлена ​​из PSGallery)
Что я сделал:
  • Установленный модуль Selenium:

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

    Install-Module -Name Selenium -Force
    Import-Module Selenium
    Get-InstalledModule -Name Selenium
    
    Результат: Модуль успешно установлен и импортирован.
  • < strong>Проверенные двоичные файлы WebDriver:

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

    which chromedriver
    which google-chrome
    which firefox
    which geckodriver
    
    Результат: Все двоичные файлы расположены в /usr/bin/ и являются исполняемыми.
  • Настройка Xvfb (безголовый сервер):

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

    Xvfb :99 -screen 0 1920x1080x24 &
    export DISPLAY=:99
    
    Ошибка: Неустранимая ошибка сервера: сервер уже активен для дисплея 99.
    Попытка исправить: удален файл блокировки и повторена попытка:

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

    rm -f /tmp/.X99-lock
    Xvfb :99 -screen 0 1920x1080x24 &
    export DISPLAY=:99
    
    Результат: Процесс запустился без ошибок после удаления файла блокировки.
  • Попытка создать параметры Chrome в PowerShell:

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

    $ChromeOptions = New-Object OpenQA.Selenium.Chrome.ChromeOptions
    $ChromeOptions.AddArgument("--headless")
    $ChromeOptions.AddArgument("--no-sandbox")
    $ChromeOptions.AddArgument("--disable-dev-shm-usage")
    $ChromeOptions.AddArgument("--disable-gpu")
    
    Ошибка: Новый объект: невозможно найти тип [OpenQA.Selenium.Chrome.ChromeOptions]: убедитесь, что сборка, содержащая этот тип, загружена. >
  • Попытка запустить Chrome в автономном режиме:

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

    $Driver = Start-SeChrome -ChromeOptions $ChromeOptions
    
    Ошибка: Start-SeChrome: не найден параметр, соответствующий имени параметра «ChromeOptions».
    < /li>
    Попытка загрузки DLL вручную:

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

    Add-Type -Path "/root/Selenium/Selenium/WebDriver.dll"
    Add-Type -Path "/root/Selenium/Selenium/WebDriver.Support.dll"
    
    Ошибка: Тип добавления: невозможно привязать параметр «Путь» к цели. Настройка исключения «Путь»: невозможно найти путь...
  • Проверен путь к модулю Selenium:

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

    $Module = Get-Module Selenium
    $ModulePath = $Module.ModuleBase
    
    Результат: Путь к модулю Selenium получен правильно.
  • < strong>Попробовал запустить Firefox:

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

    $FirefoxOptions = New-Object OpenQA.Selenium.Firefox.FirefoxOptions
    $FirefoxOptions.BrowserExecutableLocation = "/usr/bin/firefox"
    $Driver = Start-SeFirefox -FirefoxOptions $FirefoxOptions
    
    Ошибка: Новый объект: невозможно найти тип [OpenQA.Selenium.Firefox.FirefoxOptions]: убедитесь, что сборка, содержащая этот тип, загружена. >
Сводка обнаруженных ошибок:
  • Код: Выделить всё

    Cannot find type [OpenQA.Selenium.Chrome.ChromeOptions]
    в PowerShell.
  • Код: Выделить всё

    Start-SeChrome: A parameter cannot be found that matches parameter name 'ChromeOptions'.
  • Код: Выделить всё

    Cannot find path '/root/Selenium/Selenium/WebDriver.dll'
    при загрузке DLL вручную.
  • Проблемы с запуском Xvfb из-за активной блокировки сервера отображения.
Может ли кто-нибудь помочь мне решить эту проблему?

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

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

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

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

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

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