selenium version + python

Пытаюсь сделать автотесты на selenium + python

на время прекратил эти попытки, и сейчас вернулся.

Попытался повторить простейшие тесты, а они не завелись.

  1. Изменился синтаксис? (ничего не нашел у селениума). Переменная в блоке try больше не доступна в блоке finally.
  2. selenium поддерживает только 88 версию хрома, когда у меня 90. Цитирую. selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 88 Current browser version is 90.0.4430.85 with binary path C:\Program Files\Google\Chrome\Application\chrome.ex

Подскажите, как вылечить это? Selenium обновился до 3.141.0

Частично, проблема устранена, установкой дополнительной библиотеки wedrivermanager. Также, скачал свежий webdriver, но не знаю, как заставить селениум искать его, а не мой хром.


Ответы (1 шт):

Автор решения: Vladimir Obrizan

Изменился синтаксис?

Да, в Selenium 4 поменялся синтаксис. Рекомендую обновиться до последней версии.

Я рекомендую такие настройки проекта, чтобы всегда была актуальная версия Selenium и драйверов.

В requirements.txt указываем две библиотеки:

selenium
webdriver_manager

В консоли пишем pip install -r requirements.txt

webdriver_manager — это полезная библиотека, которая самостоятельно проверяет версию желаемого браузера и скачивает под него правильную версию драйвера. Затем кеширует. Если обновился браузер, то WebDriverManager сам скачает новую версию драйвера. Таким образом, версия драйвера и браузера всегда совпадают. Источник: webdriver_manager.

В папке пользователя создается кеш для всех нужных драйверов:

Структура каталогов кеша для драйверов

Далее в коде теста:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service

# Подключаем менеджер драйвера Хрома
from webdriver_manager.chrome import ChromeDriverManager 

# Здесь менеджер драйвера Хрома проверит версии и установит нужную.
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))

С такой схемой проблем не возникает с драйверами.

→ Ссылка