Selenium в Python с возвратами Docker: selenium.common.Exceptions.SessionNotCreatedException: Сообщение: не удалось начаPython

Программы на Python
Ответить
Anonymous
 Selenium в Python с возвратами Docker: selenium.common.Exceptions.SessionNotCreatedException: Сообщение: не удалось нача

Сообщение Anonymous »

При запуске в Docker я получаю следующую ошибку Selenium:

selenium.common.Exceptions.SessionNotCreatedException: Сообщение: не удалось начать новый сеанс. Ошибка при создании сеанса со службой драйверов. Остановка службы драйвера: не удалось начать новый сеанс. Код ответа 500. Сообщение: отключено: невозможно получить сообщение от средства визуализации
(не удалось проверить, закрыто ли окно: отключено: не подключено к DevTools)
(информация о сеансе: chrome=131.0.6778.204)
Информация о хосте: хост: 'a7476dd91767', ip: '172.18.0.2'
Информация о сборке: версия: '4.27.0', редакция: 'd6e718d'
Информация о системе: os.name: 'Linux', os.arch: 'amd64', os. версия: «5.15.167.4-microsoft-standard-WSL2», версия java.: «17.0.13»
Драйвер информация: driver.version: неизвестно

Я уже пробовал комбинацию selenium/standalone-chrome и контейнера Python:

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

services:
python:
build:
context: .
dockerfile: Dockerfile
volumes:
- .:/app
depends_on:
selenium:
condition: service_healthy
environment:
- DISPLAY=:99.0  #Headless-Browser display pipe
command: python /app/extract_octopus_price.py
platform: linux/amd64

selenium:
image: selenium/standalone-chrome:latest
shm_size: 2g
platform: linux/amd64
ports:
- "4444:4444"
- "7900:7900"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:4444/status"]
interval: 10s
timeout: 5s
retries: 3
start_period: 10s
С целевым кодом:

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

chrome_options = Options()
chrome_options.add_argument("--headless")
chrome_options.add_argument("--no-sandbox")
chrome_options.add_argument("--disable-dev-shm-usage")

if __name__ == "__main__":

driver = webdriver.Remote(
command_executor='http://selenium:4444',
options=chrome_options
)
driver.get("https://www.google.com/")
print(driver.page_source)
driver.quit()
И один экземпляр с:

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

FROM python:3.10

COPY requirements.txt /app/requirements.txt
RUN pip install --no-cache-dir -r /app/requirements.txt

RUN apt-get update && apt-get install -y wget unzip && \
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb && \
apt install -y ./google-chrome-stable_current_amd64.deb && \
rm google-chrome-stable_current_amd64.deb && \
apt-get clean

WORKDIR /app

ENV DISPLAY=:99
С целевым кодом:

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

chrome_options = Options()
chrome_options.add_argument("--headless")
chrome_options.add_argument("--no-sandbox")
chrome_options.add_argument("--disable-dev-shm-usage")

if __name__ == "__main__":

service = Service(ChromeDriverManager().install())
driver = webdriver.Chrome(service=service, options=chrome_options)
driver.get("https://www.google.com/")
print(driver.page_source)
driver.quit()
Но в обоих случаях я получаю упомянутую выше ошибку. Я надеюсь, что у кого-то есть идея. Спасибо!
Chrome: 131.0
selenium==4.27.1
webdriver-manager==4.0.2
selenium/standalone-chrome:4.27. 0
И если это имеет какое-то значение: я запускаю Docker Desktop (Windows 11 на ARM) на ARM64. машина. Код Python работает на этом компьютере с последней версией Chrome.

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

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

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

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

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

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