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

Last updated 5 months ago

Основными понятиями в 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