Я использую среду PowerShell Universal (PSU) на базе Docker в образе Linux и пытаюсь автоматизировать задачи с помощью модуля Selenium. Несмотря на успешную установку модуля, я столкнулся с рядом проблем при создании объектов Selenium, таких как ChromeOptions, или запуске браузеров, таких как Chrome и Firefox. Сведения о среде:
ОС: Linux (Docker-контейнер)
Версия PowerShell: 7.3.9
Версия модуля Selenium: 3.0.1 (установлена из PSGallery)
Я использую среду PowerShell Universal (PSU) на базе Docker в образе Linux и пытаюсь автоматизировать задачи с помощью модуля Selenium. Несмотря на успешную установку модуля, я столкнулся с рядом проблем при создании объектов Selenium, таких как ChromeOptions, или запуске браузеров, таких как Chrome и Firefox. [b]Сведения о среде: [list] [*]ОС:[/b] Linux (Docker-контейнер) [*][b]Версия PowerShell: [/b] 7.3.9 [*][b]Версия модуля Selenium:[/b] 3.0.1 (установлена из PSGallery) [/list] [b]Что я сделал: [/b] [list] [*][b]Установленный модуль Selenium:[/b] [code]Install-Module -Name Selenium -Force Import-Module Selenium Get-InstalledModule -Name Selenium [/code] Результат: Модуль успешно установлен и импортирован.
[*]< strong>Проверенные двоичные файлы WebDriver: [code]which chromedriver which google-chrome which firefox which geckodriver [/code] Результат: Все двоичные файлы расположены в /usr/bin/ и являются исполняемыми.
[*][b]Настройка Xvfb (безголовый сервер):[/b] [code]Xvfb :99 -screen 0 1920x1080x24 & export DISPLAY=:99 [/code] Ошибка: Неустранимая ошибка сервера: сервер уже активен для дисплея 99. [b] Попытка исправить:[/b] удален файл блокировки и повторена попытка: [code]rm -f /tmp/.X99-lock Xvfb :99 -screen 0 1920x1080x24 & export DISPLAY=:99 [/code] Результат: Процесс запустился без ошибок после удаления файла блокировки.
[*][b]Попытка создать параметры Chrome в PowerShell:[/b] [code]$ChromeOptions = New-Object OpenQA.Selenium.Chrome.ChromeOptions $ChromeOptions.AddArgument("--headless") $ChromeOptions.AddArgument("--no-sandbox") $ChromeOptions.AddArgument("--disable-dev-shm-usage") $ChromeOptions.AddArgument("--disable-gpu") [/code] Ошибка: Новый объект: невозможно найти тип [OpenQA.Selenium.Chrome.ChromeOptions]: убедитесь, что сборка, содержащая этот тип, загружена. >
[*][b]Попытка запустить Chrome в автономном режиме:[/b] [code]$Driver = Start-SeChrome -ChromeOptions $ChromeOptions [/code] Ошибка: Start-SeChrome: не найден параметр, соответствующий имени параметра «ChromeOptions». < /li> [b]Попытка загрузки DLL вручную:[/b] [code]Add-Type -Path "/root/Selenium/Selenium/WebDriver.dll" Add-Type -Path "/root/Selenium/Selenium/WebDriver.Support.dll" [/code] Ошибка: Тип добавления: невозможно привязать параметр «Путь» к цели. Настройка исключения «Путь»: невозможно найти путь...
[*][b]Проверен путь к модулю Selenium:[/b] [code]$Module = Get-Module Selenium $ModulePath = $Module.ModuleBase [/code] Результат: Путь к модулю Selenium получен правильно.
[*]< strong>Попробовал запустить Firefox: [code]$FirefoxOptions = New-Object OpenQA.Selenium.Firefox.FirefoxOptions $FirefoxOptions.BrowserExecutableLocation = "/usr/bin/firefox" $Driver = Start-SeFirefox -FirefoxOptions $FirefoxOptions [/code] Ошибка: Новый объект: невозможно найти тип [OpenQA.Selenium.Firefox.FirefoxOptions]: убедитесь, что сборка, содержащая этот тип, загружена. >
[/list]
[b]Сводка обнаруженных ошибок:[/b] [list] [*][code]Cannot find type [OpenQA.Selenium.Chrome.ChromeOptions][/code] в PowerShell. [*][code]Start-SeChrome: A parameter cannot be found that matches parameter name 'ChromeOptions'.[/code] [*][code]Cannot find path '/root/Selenium/Selenium/WebDriver.dll'[/code] при загрузке DLL вручную. [*]Проблемы с запуском Xvfb из-за активной блокировки сервера отображения. [/list] Может ли кто-нибудь помочь мне решить эту проблему?