> For the complete documentation index, see [llms.txt](https://comaqa.gitbook.io/selenium-webdriver-lectures/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://comaqa.gitbook.io/selenium-webdriver-lectures/selenium-webdriver.-vvedenie/webdriver.-obzor-i-princip-raboty.md).

# WebDriver. Обзор и принцип работы

Selenium Webdriver - инструмент для автоматизации реального браузера, как локально, так и удалённо, наиболее близко имитирующий действия пользователя.

Selenium 2 (или Webdriver) - последнее пополнение в пакете инструментов Selenium которое является основным вектором развития проекта. Это абсолютно новый инструмент автоматизации. По сравнению с Selenium RC Webdriver использует совершенно иной способ взаимодействия с браузерами. Он напрямую вызывает команды браузера, используя родной для каждого конкретного браузера API. Как совершаются эти вызовы и какие функции они выполняют зависит от конкретного браузера. В то же время Selenium RC внедрял javascript код в браузер при запуске и использовал его для управления веб-приложением. Таким образом, Webdriver использует способ взаимодействия с браузером более близкий к действиям реального пользователя.

Самое главное изменение новой версии Selenium - это Webdriver API.

Selenium 1.0 (RC) + WebDriver = Selenium 2.0

По сравнению с более старым интерфейсом он обладает рядом преимуществ:

* Интерфейс Webdriver был спроектирован более простым и выразительным;
* Webdriver обладает более компактным и объектно-ориентированным API;
* Webdriver управляет браузером более эффективно, а также справляется с некоторыми ограничениями, характерными для Selenium RC, как загрузка и отправление файлов, попапы и диалоги.

Для работы с Webdriver необходимо 3 основных программных компонента: 1. *Браузер*, работу которого пользователь хочет автоматизировать. Это реальный браузер определённой версии, установленный на определённой ОС и имеющий свои настройки (по умолчанию или кастомные). На самом деле Webdriver может работать и с "ненастоящими" браузерами, но подробно о них позже. 2. Для управления браузером совершенно необходим *driver* браузера. Driver на самом деле является веб-сервером, который запускает браузер и отправляет ему команды, а также закрывает его. У каждого браузера свой driver. Связано это с тем, что у каждого браузера свои отличные команды управления и реализованы они по-своему. Найти список доступных драйверов и ссылки для скачивания можно [на официальном сайте](http://docs.seleniumhq.org/download/) Selenium проекта. 3. *Скрипт/тест*, который содержит набор команд на определённом языке программирования для драйвера браузера. Такие скрипты используют Selenium Webdriver bindings (готовые библиотеки), которые доступны пользователям на различных языках.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://comaqa.gitbook.io/selenium-webdriver-lectures/selenium-webdriver.-vvedenie/webdriver.-obzor-i-princip-raboty.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
