Коротко — причин может быть много. Ниже собрал краткий список самых частых причин и пошаговую инструкцию по диагностике и исправлению. Пройдите пункты по порядку и при необходимости пришлите результаты (версии/логи/фрагмент кода) — помогу дальше.
1) Самые вероятные причины
- Несовместимость ChromeDriver ↔ Chrome (самая частая). Браузер запускается, но команды навигации не выполняются корректно.
- Неправильный путь/использование бинарника Chrome (например, указываете чужой chrome.exe / portable / different Chromium).
- Неверная инициализация Selenium (устаревший код, неправильный Service/Options).
- Запуск в контейнере/на сервере без GUI / без нужных библиотек (на Linux Chrome может запускаться, но не рендерить страницы).
- Профиль пользователя заблокирован / конфликт 2-х инстансов Chrome (user-data-dir).
- Сеть/прокси/брандмауэр — внутри окружения нет доступа в интернет.
- Опции Chrome мешают (например, некорректный набор аргументов или расширений приводят к зависанию).
- Сайт активно блокирует webdriver/скрипты (редко приводит к about:blank, но возможно).
- Антивирус/политики ОС вмешиваются.
2) Быстрая проверка (делается за 5–10 минут)
- Узнать версии:
- Chrome: откройте chrome://version или в терминале: google-chrome --version
- Chromedriver: chromedriver --version
- Selenium: в Python: pip show selenium
Версии должны соответствовать (Chromedriver поддерживает конкретную мажорную версию Chrome). Если не уверены — пришлите эти строки.
- Попробуйте самый минимальный рабочий скрипт (без лишних опций). Например:
- Python:
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
opts = Options()
# opts.add_argument("--headless=new") # не включайте на первых шагах
service = Service("/путь/до/chromedriver") # либо оставьте пустым, если Selenium Manager используется
driver = webdriver.Chrome(service=service, options=opts)
driver.get("https://example.com")
print(driver.current_url, len(driver.page_source))
driver.quit()
- Если в результате URL всё равно about:blank / data:, значит команды не выполняются — см. логи.
3) Включите и посмотрите логи
- Логи chromedriver:
- Service(..., log_path="chromedriver.log") или запустите chromedriver вручную: chromedriver --port=9515 --verbose
- В логах ищите ошибки session not created, version mismatch, bind errors.
- Логи Chrome:
- В options добавьте args:
--enable-logging --v=1 --log-path=chrome.log
- Посмотрите chrome.log на ошибки типа sandbox/GL failures/Crashpad.
- В Selenium включите логирование (webdriver.remote.logger).
4) Частые решаемые проблемы и как их исправить
- Несоответствие версий:
- Обновите Chrome или скачайте chromedriver соответствующей версии. Можно автоматизировать через webdriver-manager или встроенный Selenium Manager (Selenium 4.6+).
- Пример: pip install webdriver-manager и использовать ChromeDriverManager().install().
- Если Chrome уже запущен и вы используете профиль по умолчанию:
- Укажите чистый user-data-dir: options.add_argument("--user-data-dir=/tmp/selenium-profile")
- Не пытайтесь управлять уже открытым профилем.
- Если запускаете в Docker/WSL/CI:
- Для безголового режима: добавьте --no-sandbox --disable-dev-shm-usage и/или используйте официальный selenium/standalone-chrome образ.
- Убедитесь, что установлены зависимости (libnss3, fonts и т.д.) — в логах Chrome это видно.
- Прокси / сеть:
- Попробуйте driver.get("https://1.1.1.1") или http://example.com; если тоже не идёт — проблема с сетью.
- Если сайт блочит WebDriver:
- Сначала добейтесь загрузки example.com. Если базовые сайты грузятся, то уже нужно обходить детекцию (это отдельная тема).
- Если появилось сообщение об ошибке session not created:
- Обычно это mismatch версий — замените chromedriver.
5) Нюансы с новыми Selenium (4.x)
- Правильная инициализация (используйте Service):
from selenium.webdriver.chrome.service import Service
driver = webdriver.Chrome(service=Service(path), options=opts)
- Selenium Manager (новее версии) сам может скачать нужный драйвер — попробуйте обновить selenium: pip install -U selenium
6) Полезные команды/шаги для вас сейчас
- Выполните в терминале / в Python и пришлите вывод:
- google-chrome --version (или chrome.exe --version)
- /path/to/chromedriver --version
- python -c "import selenium; print(selenium.__version__)"
- Запустите минимальный скрипт выше и пришлите chromedriver.log и chrome.log (если включали).
- Если используете Docker/CI/WSL — укажите это и приложите Dockerfile / команду запуска.
Если нужно, могу:
- Подготовить точный рабочий пример для вашей ОС (Windows/Linux/macOS/Docker).
- Помочь подобрать chromedriver под вашу версию Chrome.
- Разобрать логи, которые вы пришлёте.
Напишите: ОС, версии Chrome/chromedriver/selenium, фрагмент кода запуска и — если есть — логи chromedriver/chrome. Тогда дам конкретные шаги.