# Основные методы Selenium Webdriver API

Основными понятиями в Selenium Webdriver являются:

* Webdriver - самая важная сущность, ответственная за управление браузером. Основной ход скрипта/теста строится именно вокруг экземпляра этой сущности.
* Webelement - вторая важная сущность, представляющая собой абстракцию над веб-элементом (кнопки, ссылки, поля ввода и др.). Webelement инкапсулирует методы для взаимодействия пользователя с элементами и получения их текущего статуса.
* By - абстракция над локатором веб-элемента. Этот класс инкапсулирует информацию о селекторе(например, CSS), а также сам локатор элемента, то есть всю информацию, необходимую для нахождения нужного элемента на странице.

Сам процесс взаимодействия с браузером через Webdriver API довольно прост: 1. Нужно создать Webdriver: WebDriver driver = new ChromeDriver(); При выполнении этой команды будет запущен Chrome, при условии, что он установлен в директорию по умолчанию и путь к ChromeDriver сохранен в системной переменной PATH.

1. Необходимо открыть тестируемое приложение (AUT), перейдя по URL: driver.get("<http://mycompany.site.com>"); Теоретически в хроме при этом должен открыться сайт компании. Обратите внимание, что URL приложения необходимо указать полностью, включая префикс.
2. Далее следует серия действий по нахождению элементов на странице и взаимодействию с ними: By elementLocator = By.id("#element\_id"); WebElement element = driver.findElement(elementLocator)); Или более кратко: WebElement element = driver.findElement(By.id("#element\_id"))); После нахождения элемента, кликнем по нему: element.click(); Далее следует совокупность похожих действий, как того требует сценарий.
3. В конце теста (часто также и в середине) должна быть какая-то проверка, которая и определит в конечном счёте результат выполнения теста: assertEquals("Webpage expected title", driver.getTitle()); Проверки может и не быть, если цель вашего скрипта - не тест, а выполнение какой-то рутины.
4. После теста надо закрыть браузер:

   ```
    driver.quit();
   ```

Следует отметить, что для поиска элементов доступно два метода: 1. Первый - найдёт только первый элемент, удовлетворяющий локатору: WebElement element = driver.findElement(By.id("#element\_id"))); 2. Второй - вернёт весь список элементов, удовлетворяющих запросу: List elements = driver.findElements(By.name("elements\_name"))

Более полную документацию Webdriver API можно найти по адресу: <http://selenium.googlecode.com/git/docs/api/java/index.html>


---

# Agent Instructions: 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/osnovnye-metody-selenium-webdriver-api.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.
