> 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/osnovnye-metody-selenium-webdriver-api.md).

# Основные методы 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>
