Селениевый ВебДрайвер

Нам нужны браузеры для тестирования веб-приложений. Selenium автоматизирует браузер и помогает нам в автоматизации тестирования веб-приложений в разных браузерах. Selenium API предоставляет много классов и интерфейсов для работы с различными типами браузеров и элементов HTML.

Что такое интерфейс Selenium WebDriver?

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

Selenium WebDriver

Если мы хотим выполнить наши тестовые сценарии в браузере 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 WebDriver Example

Вы можете ознакомиться с большим количеством примеров использования Selenium в нашем репозитории GitHub.

Ссылка: Код на GitHub для WebDriver

Source:
https://www.digitalocean.com/community/tutorials/selenium-webdriver