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
Мобильная версия