Установка WebDriver с помощью Webdriver Manager



Основная идея Webdriver Manager — упростить установку драйверами для разных браузеров.

К основным преимуществам использования webdriver_manager в парсерах на заказ имеет несколько ключевых факторов, когда дело доходит до установки и обновления WebDriver на компьютере заказчика:

Удобство для клиента: Клиентам не нужно заботиться о технических деталях установки или обновления WebDriver. Это особенно полезно для тех, кто не имеет технических навыков.

Экономия времени: Не потребуется времени на объяснение клиентам процесса установки или обновления, что ускоряет процесс разработки и реализации.

Меньше ошибок: Автоматическое управление драйверами уменьшает вероятность ошибок из-за несоответствия версий или неправильной установки.

Поддержка нескольких браузеров: webdriver_manager поддерживает различные драйверы (Chrome, Firefox и т.д.), что делает процесс адаптации парсера к разным браузерам гораздо проще.

Обновления «на лету»: Даже если во время использования парсера выходит новая версия браузера, webdriver_manager автоматически скачает соответствующую версию драйвера.

Далее мы рассмотрим, как автоматически установить WebDriver только для Chrome.Установка WebDriver для других браузеров подробно рассмотрена в  официальной документации.

Приступим, сначала установите библиотеку Selenium, если это еще не сделано:

pip install selenium

Далее, установите пакет webdriver_manager, если он еще не установлен:

pip install webdriver-manager

Теперь вы можете запустить следующий код, после чего запустится Chrome и загрузится страница курса:

# selenium 3
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(ChromeDriverManager().install())

# selenium 4
from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(service=ChromeService(ChromeDriverManager().install()))

Для Selenium 4+:

ChromeDriverManager().install():

Менеджер автоматически загружает ChromeDriver, соответствующий установленному Chrome. Возвращает путь к исполняемому файлу chromedriver.exe (Windows) или chromedriver (Linux/macOS).

ChromeService(ChromeDriverManager().install()):

Создается объект Service*, который использует скачанный chromedriver.

webdriver.Chrome(service=…):

Запускается браузер Chrome с переданным Service.

Объект Service в Selenium 4+ заменяет executable_path  и отвечает за управление процессом ChromeDriver. Он позволяет указать путь к драйверу, передавать аргументы и контролировать его запуск и завершение.

Для работы с Chromium

# selenium 3
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from webdriver_manager.core.os_manager import ChromeType
driver = webdriver.Chrome(ChromeDriverManager(chrome_type=ChromeType.CHROMIUM).install())

# selenium 4
from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromiumService
from webdriver_manager.chrome import ChromeDriverManager
from webdriver_manager.core.os_manager import ChromeType
driver = webdriver.Chrome(service=ChromiumService(ChromeDriverManager(chrome_type=ChromeType.CHROMIUM).install()))

Для работы с Firefox

# selenium 3
from selenium import webdriver
from webdriver_manager.firefox import GeckoDriverManager
driver = webdriver.Firefox(executable_path=GeckoDriverManager().install())

# selenium 4
from selenium import webdriver
from selenium.webdriver.firefox.service import Service as FirefoxService
from webdriver_manager.firefox import GeckoDriverManager
driver = webdriver.Firefox(service=FirefoxService(GeckoDriverManager().install()))

Для работы с Opera

# selenium 3
from selenium import webdriver
from selenium.webdriver.chrome import service
from webdriver_manager.opera import OperaDriverManager

webdriver_service = service.Service(OperaDriverManager().install())
webdriver_service.start()
driver = webdriver.Remote(webdriver_service.service_url, webdriver.DesiredCapabilities.OPERA)

# selenium 4
from selenium import webdriver
from selenium.webdriver.chrome import service
from webdriver_manager.opera import OperaDriverManager
webdriver_service = service.Service(OperaDriverManager().install())
webdriver_service.start()
options = webdriver.ChromeOptions()
options.add_experimental_option('w3c', True)
driver = webdriver.Remote(webdriver_service.service_url, options=options)

Если браузер Opera установлен в месте, отличном от C:/Program Files или C:/Program Files (x86) в Windows и /usr/bin/opera для всех вариантов unix и mac, то используйте приведенный ниже код:

options = webdriver.ChromeOptions()
options.binary_location = "path/to/opera.exe"
driver = webdriver.Remote(webdriver_service.service_url, options=options)


Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: