Нам нужны браузеры для тестирования веб-приложений. Selenium автоматизирует браузер и помогает нам в автоматизации тестирования веб-приложений в разных браузерах. Selenium API предоставляет много классов и интерфейсов для работы с различными типами браузеров и элементов HTML.
Что такое интерфейс Selenium WebDriver?
Selenium WebDriver – это интерфейс, который определяет набор методов. Однако реализация предоставляется классами, специфичными для браузера. Некоторые из классов реализации: AndroidDriver
, ChromeDriver
, FirefoxDriver
, InternetExplorerDriver
, IPhoneDriver
, SafariDriver
и т. д. Основная функциональность WebDriver заключается в управлении браузером. Он также помогает нам выбирать элементы HTML-страницы и выполнять операции с ними, такие как клик, заполнение полей формы и т. д.

Если мы хотим выполнить наши тестовые сценарии в браузере Firefox, мы должны использовать класс FirefoxDriver
. Точно так же, если мы хотим выполнить тестовые сценарии в браузере Chrome, мы должны использовать класс ChromeDriver
.
Методы Selenium WebDriver
SearchContext – верхний интерфейс в API Selenium, который имеет два метода – findElement() и findElements(). Интерфейс Selenium WebDriver имеет много абстрактных методов, таких как get(String url), quit(), close(), getWindowHandle(), getWindowHandles(), getTitle() и т. д. WebDriver имеет вложенные интерфейсы, такие как Window
, Navigation
, Timeouts
и т. д. Эти вложенные интерфейсы используются для выполнения операций, таких как back(), forward() и т. д.
Method | Description |
---|---|
get(String url) | This method will launch a new browser and opens the given URL in the browser instance. |
getWindowHandle() | It is used to handle single window i.e. main window. It return type is string. It will returns browser windlw handle from focused browser. |
getWindowHandles() | It is used to handle multiple windows. It return type is Set. It will returns all handles from all opened browsers by Selenium WebDriver. |
close() | This command is used to close the current browser window which is currently in focus. |
quit() | This method will closes all the browsers windows which are currently opened and terminates the WebDriver session. |
getTitle() | This method is used to retrieve the title of the webpage the user currently working on. |
Список классов, реализующих WebDriver
Основные классы реализации интерфейса WebDriver – ChromeDriver, EdgeDriver, FirefoxDriver, InternetExplorerDriver и т. д. Каждый класс драйвера соответствует браузеру. Просто создаем объекты классов драйверов и работаем с ними.
Class | Description |
---|---|
ChromeDriver | It helps you to execute Selenium Scripts on Chrome browser. |
FirefoxDriver | It helps you to execute Selenium Scripts on Firefox browser. |
InternetExplorerDriver | It helps you to execute Selenium Scripts on InternetExplorer browser. |
Список команд на WebElement
WebElement в Selenium представляет собой HTML-элемент. Мы можем получить экземпляр WebElement, используя метод findElement(), а затем выполнять конкретные действия, такие как click, submit и т. д. Некоторые из часто используемых методов WebElement:
Command | Description | Syntax |
---|---|---|
findElement() | This method finds the first element within the current web page by using given locator. | WebElement element = driverObject.findElement(By.locator(“value”)); |
sendKeys() | This method enters a value in to an Edit Box or Text box. | driver.findElement(By.elementLocator(“value”)).sendkeys(“value”); |
clear() | It clears the Value from an Edit box or Text Box. | driverObject.findElement(By.locatorname(“value”)).clear(); |
click() | It clicks an Element (Button, Link, Checkbox) etc. | driverObject.findElement(By.ElementLocator(“LocatorValue”)).click(); |
Пример использования Selenium WebDriver – Вывод названия веб-сайта
Давайте рассмотрим простой пример использования Selenium WebDriver для вызова браузера Firefox и вывода названия веб-сайта.
package com.journaldev.selenium.firefox;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class GeckoDriverExample {
public static void main(String[] args) {
//указываем расположение GeckoDriver для автоматизации браузера Firefox
System.setProperty("webdriver.gecko.driver", "geckodriver");
WebDriver driver = new FirefoxDriver();
driver.get("https://journaldev.com");
String PageTitle = driver.getTitle();
System.out.println("Page Title is:" + PageTitle);
driver.close();
}
}
Вывод:
1551941763563 mozrunner::runner INFO Running command: "/Applications/Firefox.app/Contents/MacOS/firefox-bin" "-marionette" "-foreground" "-no-remote" "-profile" "/var/folders/1t/sx2jbcl534z88byy78_36ykr0000gn/T/rust_mozprofile.t6ZyMHsrf2bh"
1551941764296 [email protected] WARN Loading extension '[email protected]': Reading manifest: Invalid host permission: resource://pdf.js/
1551941764297 [email protected] WARN Loading extension '[email protected]': Reading manifest: Invalid host permission: about:reader*
Can't find symbol 'GetGraphicsResetStatus'.
1551941765794 Marionette INFO Listening on port 61417
1551941765818 Marionette WARN TLS certificate errors will be ignored for this session
Mar 07, 2019 12:26:05 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: W3C
Page Title is:JournalDev - Java, Java EE, Android, Python, Web Development Tutorials
1551941814652 Marionette INFO Stopped listening on port 61417

Вы можете ознакомиться с большим количеством примеров использования Selenium в нашем репозитории GitHub.
Ссылка: Код на GitHub для WebDriver
Source:
https://www.digitalocean.com/community/tutorials/selenium-webdriver