- Selenium webdriver chrome windows
- Setup
- Sample test
- Controlling ChromeDriver’s lifetime
- Downloads
- Selenium Server (Grid)
- The Internet Explorer Driver Server
- Selenium Client & WebDriver Language Bindings
- C# NuGet
- Selenium IDE
- Maven Information
- Third Party Drivers, Bindings, and Plugins
- Platforms Supported by Selenium
- Firefox
- Internet Explorer
- Safari
- Opera
- Chrome
- Microsoft Windows
- macOS
- Linux
- Source Code
- Какую версию chromedriver установить?
- Скачать ChromeDriver для Linux, Windows и Mac
- Установка ChromeDriver под Linux, Windows и Mac
- Selenium webdriver chrome windows
- Setup
- Sample test
- Controlling ChromeDriver’s lifetime
- Selenium webdriver chrome windows
- Что пишут в блогах
- Онлайн-тренинги
- Конференции
- Что пишут в блогах (EN)
- Разделы портала
- Про инструменты
Selenium webdriver chrome windows
This page documents how to start using ChromeDriver for testing your website on desktop (Windows/Mac/Linux).
Setup
ChromeDriver is a separate executable that Selenium WebDriver uses to control Chrome. It is maintained by the Chromium team with help from WebDriver contributors. If you are unfamiliar with Selenium WebDriver, you should check out the Selenium site.
Follow these steps to setup your tests for running with ChromeDriver:
- Ensure Chromium/Google Chrome is installed in a recognized location
ChromeDriver expects you to have Chrome installed in the default location for your platform. You can also force ChromeDriver to use a custom location by setting a special capability.
- Download the ChromeDriver binary for your platform under the downloads section of this site
- Help WebDriver find the downloaded ChromeDriver executable
Any of these steps should do the trick:
- include the ChromeDriver location in your PATH environment variable
- (Java only) specify its location via the webdriver.chrome.driver system property (see sample below)
- (Python only) include the path to ChromeDriver when instantiating webdriver.Chrome (see sample below)
Sample test
Controlling ChromeDriver’s lifetime
The ChromeDriver class starts the ChromeDriver server process at creation and terminates it when quit is called. This can waste a significant amount of time for large test suites where a ChromeDriver instance is created per test. There are two options to remedy this:
1. Use the ChromeDriverService. This is available for most languages and allows you to start/stop the ChromeDriver server yourself. See here for a Java example (with JUnit 4):
2. Start the ChromeDriver server separately before running your tests, and connect to it using the Remote WebDriver.
Downloads
Below is where you can find the latest releases of all the Selenium components. You can also find a list of previous releases, source code, and additional information for Maven users.
Selenium Server (Grid)
The Selenium Server is needed in order to run Remote Selenium WebDriver (Grid).
Latest stable version 3.141.59
To use the Selenium Server in a Grid configuration see the documentation.
Latest Selenium 4 Beta version 4.0.0-beta-3
The Internet Explorer Driver Server
This is required if you want to make use of the latest and greatest features of the WebDriver InternetExplorerDriver.
Please make sure that this is available on your $PATH (or %PATH% on Windows) in order for the IE Driver to work as expected.
Selenium Client & WebDriver Language Bindings
In order to create scripts that interact with the Selenium Server (Remote WebDriver) or create local Selenium WebDriver scripts, you need to make use of language-specific client drivers.
While language bindings for other languages exist, these are the core ones that are supported by the main project hosted on GitHub.
Language | Stable Version | Release Date | Beta Version | Beta Release Date | Links |
---|---|---|---|---|---|
Ruby | 3.142.6 | October 04, 2019 | 4.0.0beta3 | April 13, 2021 | Download Beta Download Changelog API Docs |
Java | 3.141.59 | November 14, 2018 | 4.0.0-beta-3 | April 13, 2021 | Download Beta Download Changelog API Docs |
Python | 3.141.0 | November 01, 2018 | 4.0.0.b3 | April 13, 2021 | Download Beta Download Changelog API Docs |
C# | 3.14.0 | August 02, 2018 | 4.0.0-beta2 | March 17, 2021 | Download Beta Download Changelog API Docs |
JavaScript | 3.6.0 | October 06, 2017 | 4.0.0-beta.3 | April 13, 2021 | Download Beta Download Changelog API Docs |
C# NuGet
Nuget latest release is 3.14.0. Released on 2018-08-02
Selenium IDE
Selenium IDE is a Chrome and Firefox plugin which records and plays back user interactions with the browser. Use this to either create simple scripts or assist in exploratory testing.
Download latest released version for Chrome or for Firefox or view the Release Notes.
Maven Information
If you’re using Maven, you will find more information here.
Third Party Drivers, Bindings, and Plugins
Selenium can be extended through the use of plugins.
Here are a number of plugins created and maintained by third parties. For more information on how to create your own plugin or have it listed, learn more here.
Platforms Supported by Selenium
Firefox
GeckoDriver is implemented and supported by Mozilla, refer to their documentation for supported versions.
Internet Explorer
Only version 11 is supported, and it requires additional configuration.
Safari
SafariDriver is supported directly by Apple, for more information, check their documentation
Opera
OperaDriver is supported by Opera Software, refer to their documentation for supported versions.
Chrome
ChromeDriver is supported by the Chromium project, please refer to their documentation for any compatibility information
Microsoft is implementing and maintaining the Microsoft Edge WebDriver, please refer to their documentation for any compatibility information
Microsoft Windows
Most versions of MS Windows that are currently still supported by Microsoft should work with Selenium. Although we use the latest MS Windows to troubleshoot things, it does not mean Selenium won’t attempt to support different versions of Windows. This only means we don’t continually run tests on other particular version of Windows.
macOS
We currently do not use any version of macOS in our automated tests against the selenium project. However most developers on the project are using a recent version of macOS and we’ll continue to support the current stable release and often the previous release.
Linux
We test mainly on Ubuntu, but other variations of Linux should also work where the browser manufacturers support them.
Source Code
You can also find a list of the Selenium source code at our GitHub repository here.
Для запуска тестов 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 chrome windows
This page documents how to start using ChromeDriver for testing your website on desktop (Windows/Mac/Linux).
Setup
ChromeDriver is a separate executable that Selenium WebDriver uses to control Chrome. It is maintained by the Chromium team with help from WebDriver contributors. If you are unfamiliar with Selenium WebDriver, you should check out the Selenium site.
Follow these steps to setup your tests for running with ChromeDriver:
- Ensure Chromium/Google Chrome is installed in a recognized location
ChromeDriver expects you to have Chrome installed in the default location for your platform. You can also force ChromeDriver to use a custom location by setting a special capability.
- Download the ChromeDriver binary for your platform under the downloads section of this site
- Help WebDriver find the downloaded ChromeDriver executable
Any of these steps should do the trick:
- include the ChromeDriver location in your PATH environment variable
- (Java only) specify its location via the webdriver.chrome.driver system property (see sample below)
- (Python only) include the path to ChromeDriver when instantiating webdriver.Chrome (see sample below)
Sample test
Controlling ChromeDriver’s lifetime
The ChromeDriver class starts the ChromeDriver server process at creation and terminates it when quit is called. This can waste a significant amount of time for large test suites where a ChromeDriver instance is created per test. There are two options to remedy this:
1. Use the ChromeDriverService. This is available for most languages and allows you to start/stop the ChromeDriver server yourself. See here for a Java example (with JUnit 4):
2. Start the ChromeDriver server separately before running your tests, and connect to it using the Remote WebDriver.
Selenium webdriver chrome windows
Что пишут в блогах
В этом выпуске говорили о новостях мира тестирования за март 2021: книги, полезные материалы и новые релизы инструментов, которые будут полезны для тестировщиков разного уровня.
Онлайн-тренинги
Конференции
Что пишут в блогах (EN)
Разделы портала
Про инструменты
Автор: Энди Найт (Andy Knight)
Оригинал статьи
Перевод : Ольга Алифанова
Теперь, когда наш тест-проект создан, напишем несколько Web UI-тестов при помощи Selenium WebDriver!
Что такое WebDriver?
WebDriver – это программируемый интерфейс для взаимодействия с живыми веб-браузерами. Он позволяет тест-автоматизации открывать браузер, передавать клики, вводить символы, удалять текст, и чисто завершать работу с браузером. Интерфейс WebDriver рекомендован W3C. Самый популярный вариант реализации стандартов WebDriver – это Selenium WebDriver, бесплатный инструмент с открытым исходным кодом.
У WebDriver несколько компонентов:
- Языковые комплекты. Программные пакеты вроде Selenium WebDriver предоставляют комплекты языков программирования для взаимодействия с браузером. Selenium поддерживает основные языки вроде C#, Java, JavaScript, Ruby и Python.
- Код автоматизации. Программисты используют языковые комплекты для автоматизации взаимодействий с браузером. Распространенные взаимодействия – это, например, поиск элементов, клик по ним, и очищение текста. Обычно это пишется при помощи фреймворка тест-автоматизации.
- ПротоколJSONWire. Языковые комплекты кодируют любые взаимодействия, используя JSON, и отправляют их как запросы REST API к драйверу браузера. Протокол JSON Wire независим от языка и платформы.
- Драйвер браузера. Драйвер – это самостоятельный исполняемый модуль на тест-машине. Он работает как прокси между функцией, вызывающей взаимодействие, и браузером. Он получает запросы JSON для взаимодействий и отправляет их в браузер через HTTP.
- Браузер. Браузер обрабатывает тестируемые веб-страницы. Он в основном контролируется драйвером. Все основные браузеры поддерживают WebDriver, но каждому также нужен свой собственный тип драйвера, установленный на той же машине, что и браузер, и доступный по системному пути. К примеру, Google Chrome требует ChromeDriver.
Установка Selenium WebDriver
Для нашего тест-проекта мы будем использовать Python-комплекты Selenium WebDriver, а также Google Chrome и ChromeDriver. Можно пользоваться любым браузером, но давайте возьмем Chrome – у него, во-первых, очень высокая доля рынка, а во-вторых, есть инструменты разработчика, которые пригодятся позднее.
Убедитесь, что на вашей машине установлена самая свежая версия Chrome (для проверки и обновления Chrome перейдите в меню и выберите Help > About Google Chrome. Другой вариант – загрузите и установите его отсюда). Затем скачайте подходящую версию ChromeDriver тут и добавьте его в ваши системные пути.
Убедитесь, что СhromeDriver работает из командной строки:
- $ chromedriver
- Starting ChromeDriver 73.0.3683.68 (47787ec04b6e38e22703e856e101e840b65afe72) on port 9515
- Only local connections are allowed.
- Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.
Затем установите пакет Selenium Python в наше окружение:
- $ pipenv install selenium —dev
Теперь машина готова для веб-тестирования!
Новые тесты
Создайте новый модуль Python в директории tests/ по имени test_web.py. Этот новый модуль будет содержать наши Web UI-тесты. Теперь добавьте следующие импорты:
- import pytest
- from selenium.webdriver import Chrome
- from selenium.webdriver.common.keys import Keys
Зачем они нам нужны?
- pytest будет использоваться для фикстур
- Chrome предоставляет комплект ChromeDriver.
- Keys содержат специальные нажатия клавиш для браузерных взаимодействий.
Настройка и очистка WebDriver
Хорошая практика – когда каждый тест-кейс использует собственную копию WebDriver. Настройка и очистка добавляют несколько секунд к каждому тесту, однако отдельная копия для каждого теста сохраняет их простоту, безопасность и независимость. Если один тест наткнется на проблему, это не затронет другие тесты. К тому же использование отдельной копии WebDriver для каждого теста позволяет запускать их параллельно.
Лучше всего настраивать WebDriver при помощи фикстуры pytest. Фикстуры – это модные функции pytest для настройки и очистки, а еще они умеют внедрять зависимости. Любой тест, требующий копии WebDriver, может просто вызвать фикстуру для его получения.
Код
Добавьте вот такой код в tests/test_web.py:
- @pytest.fixture
- def browser():
- driver = Chrome()
- driver.implicitly_wait(10)
- yield driver
- driver.quit()
browser – это фикстурная функция pytest, как указано в декораторе @pytest.fixture. Давайте рассмотрим каждую строчку, чтобы понимать, что делает эта новая фикстура.
Строки
Chrome() инициализирует копию ChromeDriver на локальной машине, используя настройки по умолчанию. Возвращенный объект драйвера привязан к копии ChromeDriver. Все вызовы WebDriver будут выполняться через него.
Самая болезненная часть тест-автоматизации Web UI – это ожидание загрузки или изменения страницы после инициации взаимодействия. Странице нужно время на обработку новых элементов, и если автотест попытается получить доступ к новым элементам до того, как они начнут существовать, WebDriver выдаст исключение NoSuchElementException. Неправильное ожидание – богатый источник «нестабильности» Web UI-тестов.
Метод implicitly_wait говорит драйверу подождать существования элементов не более 10 секунд, прежде чем пытаться их найти. Механизм ожидания довольно умен – вместо того, чтобы спать полные 10 секунд, он прекратит ожидание сразу после появления элемента. Неявные ожидания декларируются один раз, и затем автоматически используются для всех элементов. В отличие от них, явные ожидания могут быть заданы отдельно для каждого взаимодействия – ценой необходимости явных вызовов ожидания. Хорошая практика – использовать один стиль ожидания эксклюзивно для тест-автоматизации. Смешивание явных и неявных ожиданий может иметь мерзкие и неожиданные побочные эффекты. Для нашего проекта неявное 10-секундное ожидание должно быть достаточным (если у вас медленное Интернет-соединение, повысьте этот таймаут для компенсации).
Фикстура pytest должна возвращать значение, сообщающее, что именно настраивалось. Наша фикстура возвращает ссылку на инициализированный WebDriver. Однако вместо выражения return она использует yield, что означает, что фикстура – генератор. Первая итерация фикстуры – в нашем случае, инициализация WebDriver – это фаза «настройки», которая вызывается до того, как начался тест. Вторая итерация – вызов выхода – это фаза очистки, вызывающаяся после завершения теста. Запись фикстур как генераторов объединяет в одно целое связанные операции настройки и очистки.
Всегда выходите из копии WebDriver в конце теста, что бы ни случилось. Процессы драйвера на тест-машине не всегда умирают после окончания автоматизации. Отсутствие явного выхода из копии драйвера может оставить его запущенным как зомби-процесс – а это может привести к потреблению и даже блокировке системных ресурсов.