selenium version + python
Пытаюсь сделать автотесты на selenium + python
на время прекратил эти попытки, и сейчас вернулся.
Попытался повторить простейшие тесты, а они не завелись.
- Изменился синтаксис? (ничего не нашел у селениума). Переменная в блоке
tryбольше не доступна в блокеfinally. - 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 шт):
Изменился синтаксис?
Да, в 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()))
С такой схемой проблем не возникает с драйверами.
