- Selenium Client Driver¶
- Supported Python Versions¶
- Installing¶
- Drivers¶
- Example 0:¶
- Example 1:¶
- Example 2:¶
- Selenium Server (optional)¶
- Use The Source Luke!¶
- Установка драйвера chromedriver для Chrome Selenium
- Какую версию chromedriver установить?
- Скачать ChromeDriver для Linux, Windows и Mac
- Установка ChromeDriver под Linux, Windows и Mac
- Selenium webdriver в python. Установка и начало работы.
- Находим и скачиваем Chrome Webdriver
- Устанавливаем Chromedriver и приступаем к работе
- От автора
Selenium Client Driver¶
The selenium package is used to automate web browser interaction from Python.
Home: | https://selenium.dev |
GitHub: | https://github.com/SeleniumHQ/Selenium |
PyPI: | https://pypi.org/project/selenium/ |
IRC/Slack: | Selenium chat room |
Several browsers/drivers are supported (Firefox, Chrome, Internet Explorer), as well as the Remote protocol.
Supported Python Versions¶
Installing¶
If you have pip on your system, you can simply install or upgrade the Python bindings:
Alternately, you can download the source distribution from PyPI (e.g. selenium-4.10.0.tar.gz), unarchive it, and run:
Note: You may want to consider using virtualenv to create isolated Python environments.
Drivers¶
Selenium requires a driver to interface with the chosen browser. Firefox, for example, requires geckodriver, which needs to be installed before the below examples can be run. Make sure it’s in your PATH , e. g., place it in /usr/bin or /usr/local/bin .
Failure to observe this step will give you an error selenium.common.exceptions.WebDriverException: Message: ‘geckodriver’ executable needs to be in PATH.
Other supported browsers will have their own drivers available. Links to some of the more popular browser drivers follow.
Chrome: | https://chromedriver.chromium.org/downloads |
Edge: | https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/ |
Firefox: | https://github.com/mozilla/geckodriver/releases |
Safari: | https://webkit.org/blog/6900/webdriver-support-in-safari-10/ |
Example 0:¶
from selenium import webdriver browser = webdriver.Firefox() browser.get('http://selenium.dev/')
Example 1:¶
- open a new Firefox browser
- load the Yahoo homepage
- search for “seleniumhq”
- close the browser
from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys browser = webdriver.Firefox() browser.get('http://www.yahoo.com') assert 'Yahoo' in browser.title elem = browser.find_element(By.NAME, 'p') # Find the search box elem.send_keys('seleniumhq' + Keys.RETURN) browser.quit()
Example 2:¶
Selenium WebDriver is often used as a basis for testing web applications. Here is a simple example using Python’s standard unittest library:
import unittest from selenium import webdriver class GoogleTestCase(unittest.TestCase): def setUp(self): self.browser = webdriver.Firefox() self.addCleanup(self.browser.quit) def test_page_title(self): self.browser.get('http://www.google.com') self.assertIn('Google', self.browser.title) if __name__ == '__main__': unittest.main(verbosity=2)
Selenium Server (optional)¶
For normal WebDriver scripts (non-Remote), the Java server is not needed.
However, to use Selenium Webdriver Remote , you need to also run the Selenium server. The server requires a Java Runtime Environment (JRE).
Run the server from the command line:
java -jar selenium-server-4.10.0.jar
Then run your Python client scripts.
Use The Source Luke!¶
Установка драйвера chromedriver для Chrome Selenium
Для запуска тестов Selenium в Google Chrome, помимо самого браузера Chrome, должен быть установлен ChromeDriver. Установить ChromeDriver очень просто, так как он находится в свободном доступе в Интернете. Загрузите архив в зависимости от операционной системы, разархивируйте его и поместите исполняемый файл chromedriver в нужную директорию.
Какую версию chromedriver установить?
Мы должны установить именно ту версия которая была бы совместима с установленным Google Chrome на нашем ПК или VDS. В случае, если версии не совпадают, то мы получим данную ошибку:
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 81
Введите в адресную строку Google Chrome данный путь:
У вас появится вот такое окно:
Рисунок 1 — Узнаем версию браузера Google Chrome
Скачать ChromeDriver для Linux, Windows и Mac
На данный момент актуальная версия драйвера 81.0.40 хотя у меня установлен более старый Google Chrome и последняя версия мне не подойдет. Как видно на рисунке выше, мне нужна версия 79.0.39 у вас может быть другая версия, нужно её скачать.
Рисунок 2 — Официальный сайт Google для загрузки драйвера chromedriver
На момент прочтения этой статьи версия может быть другой. Всегда выбирайте более новую версию, чтобы не поймать старые баги которые уже давно исправили в новой версии. НО! Помните, что вам нужно обновить и свой браузер Google Chrome если вы хотите работать с новой версией ChromeDriver.
Установка ChromeDriver под Linux, Windows и Mac
- Заходим на сайт https://chromedriver.storage.googleapis.com/index.html?path=79.0.3945.36/ (Проверьте сайт с Рис. 2 на обновления, тут версия: 79.0.3945);
- Скачиваем архив под вашу операционную систему;
- Распаковываем файл и запоминаем где находится файл chromedriver или chromedriver.exe (Windows).
Рисунок 3 — Скаченный архив с ChromeDriver
Если у вас Linux дистрибутив или Mac, вам нужно дать файлу chromedriver нужные права на выполнения. Открываем терминал и вводим команды одна за другой.
Selenium webdriver в python. Установка и начало работы.
Создаем новый проект. Устанавливаем библиотеку Selenium в наше виртуальное окружение (venv) только что созданного проекта, выполнив команду:
На этом пока сворачиваем нашу IDE, следующая наша цель это найти и скачать сам драйвер Селениума для браузера гугл хром.
Находим и скачиваем Chrome Webdriver
Далее установим Webdriver для нашего браузера. Будем рассматривать на примере браузера Google Chrome. Откроем браузер Chrome нажмем три точки >>> «Справка» >>> «О браузере Google Chrome» или просто пройдем по ссылке chrome://settings/help, нас интересует версия нашего браузера пункт 4 рисунок 1.
После того, как мы узнали нашу версию браузера, переходим на Chromedriver и ищем версию которая соответствует нашей версии. На моем примере: у меня версия версия 107.0.5304.88, но в списке нету такой, самая похожая107.0.5304.62, она подходит, ориентируемся по первым трем цифрам 107.Х.ХХХХ.ХХ. Скачиваем драйвер под свою операционную систему. Если у вас windows x64, скачивайте chromedriver_win32.zip.
Устанавливаем Chromedriver и приступаем к работе
Распаковываем архив в любую выбранную вами папку, либо в сам проект, я же распакую chromedriver в диск C, заранее создав там папку: C:\chromedriver. Далее в нашем проекте, где ранее установили Selenium пишем следующий код:
from selenium import webdriver from selenium.webdriver.chrome.service import Service as ChromeService url = 'https://happypython.ru/about_us/' browser = webdriver.Chrome(service=ChromeService(executable_path='C:/chromedriver/chromedriver')) browser.get(url)
Где executable_path это как раз таки путь к вашему драйверу Selenium, куда ранее вы его распаковали
Если при запуске откроется браузер Google Chrome и страница «О нас», то вы все выполнили верно. Данную конструкцию, в старых статьях вы наверное не встречали, но разработчики Selenium рекомендуют именно так, подробнее можете ознакомится в официальной документации.
Я предлагаю следующую конструкцию:
from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.common.by import By import time url = 'https://happypython.ru/about_us/' service = Service(executable_path='C:/chromedriver/chromedriver') # указываем путь до драйвера browser = webdriver.Chrome(service=service) try: browser.get(url) time.sleep(10) browser.quit() except Exception as ex: print(ex) browser.quit() browser.quit()
Выше написанный код выполняет тоже самое, что было рассмотрено ранее, но написан более понятно и исключает ошибки, связанных при работе с драйвером Selenium, благодаря конструкции try/except. Подробнее вы разберете это в следующей статье «Selenium webdriver в python. Selenium-поиск элементов на странице«
От автора
Если у Вас, что то не выходит или не получается, со своим вопросом Вы можете обратиться мне Вконтакте. Так же свои отвызы и предложения вы можете писать в нашу группу ВКонтакте или в чате Telegram.
Telegram каналы наших партнеров:
Backend development — все о бэкенде на python и не только (полезные статьи, гайды, шпаргалки , переводы книг)
EasyPy — о языке программирования python простым языком (интересные статьи, тесты для языка Python, проводят занятия)