Class PageBase

  • All Implemented Interfaces:

    
    public class PageBase<T extends PageBase<T>>
    extends PageHelper
                        

    Базовый класс, от которого наследуются классы страниц, реализующие шаблон Page Object.

    Предоставляет методы для взаимодействия со страницей браузера и методы создания элементов (getElementById, getElementByXpath и другие).

    Пример страницы:

    public class Page extends PageBase<Page> {
        public Element element = getElementById("id", "Описание элемента");
    
        public Page(BaseHelper baseHelper) {
            super(baseHelper, PropertiesHelper.getProperty("page.link"));
        }
    
        public Page doSomething() {
            element.click();
            // ...
            // ...
            return this;
        }
    }

    Пример использования страницы:

    pages.page.open();
    pages.page.doSomething();
    pages.page.refresh();

    или (fluent-стиль)

    pages.page.open()
            .doSomething()
            .refresh();

    и т.д.

    • Constructor Detail

      • PageBase

        PageBase(BaseHelper baseHelper, String link)
        Конструктор класса
        Parameters:
        baseHelper - Объект базового класса
        link - По умолчанию null.
      • PageBase

        PageBase(BaseHelper baseHelper)
        Конструктор класса
        Parameters:
        baseHelper - Объект базового класса
    • Method Detail

      • getAlert

         final PageBase.Alert<T> getAlert()

        Возвращает объект с методами взаимодействия с диалогововыми окнами на странице

        Пример:

        pages.page.getAlert().acceptAlert();
        Returns:

        Объект PageBase.Alert

        Since:

        2.0.1

      • getCookies

         final PageBase.Cookies<T> getCookies()

        Возвращает объект с методами взаимодействия с Cookie

        Пример:

        var cookie = new Cookie(name, value);
        pages.page.getCookies().setCookie(cookie);
        Returns:

        Объект PageBase.Cookies

        Since:

        2.0.1

      • getFrame

         final PageBase.Frame<T> getFrame()

        Возвращает объект с методами взаимодействия с фреймами на странице

        Пример:

        pages.page.getFrame().switchToFrame(pages.page.frameElement);
        // ...
        pages.page.getFrame().switchToDefaultContent();
        // ...
        Returns:

        Объект PageBase.Frame

        Since:

        2.0.1

      • getWindow

         final PageBase.Window<T> getWindow()

        Возвращает объект с методами изменения размера окна браузера, действий с вкладками

        Пример:

        pages.page.getWindow().setSize(1000, 500);
        // ...
        pages.page.getWindow().openNewTab();
        // ...
        Returns:

        Объект PageBase.Window

        Since:

        2.0.1

      • open

         final T open()

        Переход на страницу. Если в конструктор класса PageBase, от которого наследуется класс страницы, не передан параметр link, то при вызове метода ничего не происходит

        Returns:

        Объект страницы, у которой вызван этот метод

      • refresh

         final T refresh()

        Обновление страницы

        Returns:

        Объект страницы, у которой вызван этот метод

      • navigateForward

         final PageBase<T> navigateForward()

        Переход на следующую страницу из истории браузера

        Returns:

        PageBase

      • sleep

         final T sleep(Long millis)

        Пауза в заданное количество миллисекунд.

        Рассмотрите возможность использовать методы Element.waitFor, Element.waitForExists, Element.waitForExistsAnd или методы класса Wait вместо паузы

        Parameters:
        millis - Количество миллисекунд
        Returns:

        Объект страницы, у которой вызван этот метод

      • getActiveElement

         final Element getActiveElement()

        Получение активного элемента - элемента, на котором установлен фокус. Если фокуса нет ни на одном элементе, то возвращается элемент body

        Returns:

        Активный элемент

        Since:

        1.2.3

      • performActions

         final T performActions(String message, Consumer<Actions> consumer)

        Выполнение действий над элементами с помощью Actions. Используется в связке с методом Element.toWebElement.

        Пример (Java):

        pages.page.performActions("Клик правой кнопкой мыши по элементу и выбор первого пункта меню",
                actions -> actions.contextClick(pages.page.elementOnPage.toWebElement())
                    .sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.RETURN).perform());

        Пример (Kotlin):

        pages.page.performActions("Клик правой кнопкой мыши по элементу и выбор первого пункта меню") {
                it.contextClick(pages.page.elementOnPage.toWebElement())
                    .sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.RETURN).perform()
        }
        Parameters:
        message - Описание действия
        consumer - Лямбда Consumer
        Returns:

        Объект страницы, у которой вызван этот метод

        Since:

        2.0.1

      • getDevTools

         final DevTools getDevTools()

        Получение объекта DevTools

        Returns:

        DevTools

        Since:

        2.3.1

      • setWebDriverSettings

         final Unit setWebDriverSettings(String message, Consumer<WebDriver> consumer)

        Настройка WebDriver через лямбду-consumer

        Parameters:
        message - Описание действий.
        consumer - Лямбда для действий над WebDriver
        Since:

        2.3.1

      • getElementByXpath

         final Element getElementByXpath(String xpath, String description, Boolean hidden)

        Создание объекта Element с помощью xpath в качестве локатора

        Parameters:
        xpath - Локатор элемента
        description - Описание элемента.
        hidden - По умолчанию false.
        Returns:

        Объект Element

      • getElementByXpath

         final Element getElementByXpath(String xpath, String description)

        Создание объекта Element с помощью xpath в качестве локатора

        Parameters:
        xpath - Локатор элемента
        description - Описание элемента.
        Returns:

        Объект Element

      • getElementByXpath

         final Element getElementByXpath(Element parent, String xpath, String description, Boolean hidden)

        Создание объекта Element с помощью xpath в качестве локатора. Первым параметром метод принимает родительский Element, в контексте которого будет осуществляться поиск

        Parameters:
        parent - Родительский элемент
        xpath - Локатор элемента
        description - Описание элемента.
        hidden - По умолчанию false.
        Returns:

        Объект Element

        Since:

        2.0.2

      • getElementByXpath

         final Element getElementByXpath(Element parent, String xpath, String description)

        Создание объекта Element с помощью xpath в качестве локатора. Первым параметром метод принимает родительский Element, в контексте которого будет осуществляться поиск

        Parameters:
        parent - Родительский элемент
        xpath - Локатор элемента
        description - Описание элемента.
        Returns:

        Объект Element

        Since:

        2.0.2

      • getElementById

         final Element getElementById(String id, String description, Boolean hidden)

        Создание объекта Element с помощью id в качестве локатора

        Parameters:
        id - Локатор элемента
        description - Описание элемента.
        hidden - По умолчанию false.
        Returns:

        Объект Element

      • getElementById

         final Element getElementById(String id, String description)

        Создание объекта Element с помощью id в качестве локатора

        Parameters:
        id - Локатор элемента
        description - Описание элемента.
        Returns:

        Объект Element

      • getElementById

         final Element getElementById(Element parent, String id, String description, Boolean hidden)

        Создание объекта Element с помощью id в качестве локатора. Первым параметром метод принимает родительский Element, в контексте которого будет осуществляться поиск

        Parameters:
        parent - Родительский элемент
        id - Локатор элемента
        description - Описание элемента.
        hidden - По умолчанию false.
        Returns:

        Объект Element

        Since:

        2.0.2

      • getElementById

         final Element getElementById(Element parent, String id, String description)

        Создание объекта Element с помощью id в качестве локатора. Первым параметром метод принимает родительский Element, в контексте которого будет осуществляться поиск

        Parameters:
        parent - Родительский элемент
        id - Локатор элемента
        description - Описание элемента.
        Returns:

        Объект Element

        Since:

        2.0.2

      • getElementByClassName

         final Element getElementByClassName(String className, String description, Boolean hidden)

        Создание объекта Element с помощью className в качестве локатора

        Parameters:
        className - Локатор элемента
        description - Описание элемента.
        hidden - По умолчанию false.
        Returns:

        Объект Element

      • getElementByClassName

         final Element getElementByClassName(String className, String description)

        Создание объекта Element с помощью className в качестве локатора

        Parameters:
        className - Локатор элемента
        description - Описание элемента.
        Returns:

        Объект Element

      • getElementByClassName

         final Element getElementByClassName(Element parent, String className, String description, Boolean hidden)

        Создание объекта Element с помощью className в качестве локатора. Первым параметром метод принимает родительский Element, в контексте которого будет осуществляться поиск

        Parameters:
        parent - Родительский элемент
        className - Локатор элемента
        description - Описание элемента.
        hidden - По умолчанию false.
        Returns:

        Объект Element

        Since:

        2.0.2

      • getElementByClassName

         final Element getElementByClassName(Element parent, String className, String description)

        Создание объекта Element с помощью className в качестве локатора. Первым параметром метод принимает родительский Element, в контексте которого будет осуществляться поиск

        Parameters:
        parent - Родительский элемент
        className - Локатор элемента
        description - Описание элемента.
        Returns:

        Объект Element

        Since:

        2.0.2

      • getElementByCssSelector

         final Element getElementByCssSelector(String cssSelector, String description, Boolean hidden)

        Создание объекта Element с помощью cssSelector в качестве локатора.

        Parameters:
        cssSelector - Локатор элемента
        description - Описание элемента.
        hidden - По умолчанию false.
        Returns:

        Объект Element

      • getElementByCssSelector

         final Element getElementByCssSelector(String cssSelector, String description)

        Создание объекта Element с помощью cssSelector в качестве локатора.

        Parameters:
        cssSelector - Локатор элемента
        description - Описание элемента.
        Returns:

        Объект Element

      • getElementByCssSelector

         final Element getElementByCssSelector(Element parent, String cssSelector, String description, Boolean hidden)

        Создание объекта Element с помощью cssSelector в качестве локатора. Первым параметром метод принимает родительский Element, в контексте которого будет осуществляться поиск.

        Parameters:
        parent - Родительский элемент
        cssSelector - Локатор элемента
        description - Описание элемента.
        hidden - По умолчанию false.
        Returns:

        Объект Element

        Since:

        2.0.2

      • getElementByCssSelector

         final Element getElementByCssSelector(Element parent, String cssSelector, String description)

        Создание объекта Element с помощью cssSelector в качестве локатора. Первым параметром метод принимает родительский Element, в контексте которого будет осуществляться поиск.

        Parameters:
        parent - Родительский элемент
        cssSelector - Локатор элемента
        description - Описание элемента.
        Returns:

        Объект Element

        Since:

        2.0.2

      • getElementByLinkText

         final Element getElementByLinkText(String linkText, String description, Boolean hidden)

        Создание объекта Element с помощью linkText в качестве локатора

        Parameters:
        linkText - Локатор элемента
        description - Описание элемента.
        hidden - По умолчанию false.
        Returns:

        Объект Element

      • getElementByLinkText

         final Element getElementByLinkText(String linkText, String description)

        Создание объекта Element с помощью linkText в качестве локатора

        Parameters:
        linkText - Локатор элемента
        description - Описание элемента.
        Returns:

        Объект Element

      • getElementByLinkText

         final Element getElementByLinkText(Element parent, String linkText, String description, Boolean hidden)

        Создание объекта Element с помощью linkText в качестве локатора. Первым параметром метод принимает родительский Element, в контексте которого будет осуществляться поиск

        Parameters:
        parent - Родительский элемент
        linkText - Локатор элемента
        description - Описание элемента.
        hidden - По умолчанию false.
        Returns:

        Объект Element

        Since:

        2.0.2

      • getElementByLinkText

         final Element getElementByLinkText(Element parent, String linkText, String description)

        Создание объекта Element с помощью linkText в качестве локатора. Первым параметром метод принимает родительский Element, в контексте которого будет осуществляться поиск

        Parameters:
        parent - Родительский элемент
        linkText - Локатор элемента
        description - Описание элемента.
        Returns:

        Объект Element

        Since:

        2.0.2

      • getElementByName

         final Element getElementByName(String name, String description, Boolean hidden)

        Создание объекта Element с помощью name в качестве локатора

        Parameters:
        name - Локатор элемента
        description - Описание элемента.
        hidden - По умолчанию false.
        Returns:

        Объект Element

      • getElementByName

         final Element getElementByName(String name, String description)

        Создание объекта Element с помощью name в качестве локатора

        Parameters:
        name - Локатор элемента
        description - Описание элемента.
        Returns:

        Объект Element

      • getElementByName

         final Element getElementByName(Element parent, String name, String description, Boolean hidden)

        Создание объекта Element с помощью name в качестве локатора. Первым параметром метод принимает родительский Element, в контексте которого будет осуществляться поиск

        Parameters:
        parent - Родительский элемент
        name - Локатор элемента
        description - Описание элемента.
        hidden - По умолчанию false.
        Returns:

        Объект Element

        Since:

        2.0.2

      • getElementByName

         final Element getElementByName(Element parent, String name, String description)

        Создание объекта Element с помощью name в качестве локатора. Первым параметром метод принимает родительский Element, в контексте которого будет осуществляться поиск

        Parameters:
        parent - Родительский элемент
        name - Локатор элемента
        description - Описание элемента.
        Returns:

        Объект Element

        Since:

        2.0.2

      • getElementByPartialLinkText

         final Element getElementByPartialLinkText(String partialLinkText, String description, Boolean hidden)

        Создание объекта Element с помощью partialLinkText в качестве локатора

        Parameters:
        partialLinkText - Локатор элемента
        description - Описание элемента.
        hidden - По умолчанию false.
        Returns:

        Объект Element

      • getElementByPartialLinkText

         final Element getElementByPartialLinkText(String partialLinkText, String description)

        Создание объекта Element с помощью partialLinkText в качестве локатора

        Parameters:
        partialLinkText - Локатор элемента
        description - Описание элемента.
        Returns:

        Объект Element

      • getElementByPartialLinkText

         final Element getElementByPartialLinkText(Element parent, String partialLinkText, String description, Boolean hidden)

        Создание объекта Element с помощью partialLinkText в качестве локатора. Первым параметром метод принимает родительский Element, в контексте которого будет осуществляться поиск

        Parameters:
        parent - Родительский элемент
        partialLinkText - Локатор элемента
        description - Описание элемента.
        hidden - По умолчанию false.
        Returns:

        Объект Element

        Since:

        2.0.2

      • getElementByPartialLinkText

         final Element getElementByPartialLinkText(Element parent, String partialLinkText, String description)

        Создание объекта Element с помощью partialLinkText в качестве локатора. Первым параметром метод принимает родительский Element, в контексте которого будет осуществляться поиск

        Parameters:
        parent - Родительский элемент
        partialLinkText - Локатор элемента
        description - Описание элемента.
        Returns:

        Объект Element

        Since:

        2.0.2

      • getElementByTagName

         final Element getElementByTagName(String tagName, String description, Boolean hidden)

        Создание объекта Element с помощью tagName в качестве локатора

        Parameters:
        tagName - Локатор элемента
        description - Описание элемента.
        hidden - По умолчанию false.
        Returns:

        Объект Element

      • getElementByTagName

         final Element getElementByTagName(String tagName, String description)

        Создание объекта Element с помощью tagName в качестве локатора

        Parameters:
        tagName - Локатор элемента
        description - Описание элемента.
        Returns:

        Объект Element

      • getElementByTagName

         final Element getElementByTagName(Element parent, String tagName, String description, Boolean hidden)

        Создание объекта Element с помощью tagName в качестве локатора. Первым параметром метод принимает родительский Element, в контексте которого будет осуществляться поиск

        Parameters:
        parent - Родительский элемент
        tagName - Локатор элемента
        description - Описание элемента.
        hidden - По умолчанию false.
        Returns:

        Объект Element

        Since:

        2.0.2

      • getElementByTagName

         final Element getElementByTagName(Element parent, String tagName, String description)

        Создание объекта Element с помощью tagName в качестве локатора. Первым параметром метод принимает родительский Element, в контексте которого будет осуществляться поиск

        Parameters:
        parent - Родительский элемент
        tagName - Локатор элемента
        description - Описание элемента.
        Returns:

        Объект Element

        Since:

        2.0.2

      • getElementByRelativeLocator

         final Element getElementByRelativeLocator(RelativeLocator.RelativeBy locator, String description, Boolean hidden)

        Создание объекта Element с помощью относительного (org.openqa.selenium.support.locators.RelativeLocator.RelativeBy) локатора (создается методом org.openqa.selenium.support.locators.RelativeLocator.with).

        Пример:

        public Element element =
            getElementByRelativeLocator(with(By.tagName("tag")).toLeftOf(By.id("id")),
                "Элемент с относительным локатором");
        Parameters:
        locator - Локатор элемента
        description - Описание элемента.
        hidden - По умолчанию false.
        Returns:

        Объект Element

        Since:

        2.0.3

      • getElementByRelativeLocator

         final Element getElementByRelativeLocator(RelativeLocator.RelativeBy locator, String description)

        Создание объекта Element с помощью относительного (org.openqa.selenium.support.locators.RelativeLocator.RelativeBy) локатора (создается методом org.openqa.selenium.support.locators.RelativeLocator.with).

        Пример:

        public Element element =
            getElementByRelativeLocator(with(By.tagName("tag")).toLeftOf(By.id("id")),
                "Элемент с относительным локатором");
        Parameters:
        locator - Локатор элемента
        description - Описание элемента.
        Returns:

        Объект Element

        Since:

        2.0.3

      • getElementByRelativeLocator

         final Element getElementByRelativeLocator(Element parent, RelativeLocator.RelativeBy locator, String description, Boolean hidden)

        Создание объекта Element с помощью относительного (org.openqa.selenium.support.locators.RelativeLocator.RelativeBy) локатора (создается методом org.openqa.selenium.support.locators.RelativeLocator.with). Первым параметром метод принимает родительский Element, в контексте которого будет осуществляться поиск.

        Пример:

        public Element element =
            getElementByRelativeLocator(parentElement, with(By.tagName("tag")).toLeftOf(By.id("id")),
                "Элемент с относительным локатором");
        Parameters:
        parent - Родительский элемент
        locator - Локатор элемента
        description - Описание элемента.
        hidden - По умолчанию false.
        Returns:

        Объект Element

        Since:

        2.0.3

      • getElementByRelativeLocator

         final Element getElementByRelativeLocator(Element parent, RelativeLocator.RelativeBy locator, String description)

        Создание объекта Element с помощью относительного (org.openqa.selenium.support.locators.RelativeLocator.RelativeBy) локатора (создается методом org.openqa.selenium.support.locators.RelativeLocator.with). Первым параметром метод принимает родительский Element, в контексте которого будет осуществляться поиск.

        Пример:

        public Element element =
            getElementByRelativeLocator(parentElement, with(By.tagName("tag")).toLeftOf(By.id("id")),
                "Элемент с относительным локатором");
        Parameters:
        parent - Родительский элемент
        locator - Локатор элемента
        description - Описание элемента.
        Returns:

        Объект Element

        Since:

        2.0.3

      • getElementByCustomLocator

         final Element getElementByCustomLocator(By locator, String description, Boolean hidden)

        Создание объекта Element с помощью кастомного локатора.

        Пример:

        // Пользовательский класс CustomLocator, наследуется от By
        public Element element =
            getElementByCustomLocator(new CustomLocator("locator"),
                "Элемент с кастомным локатором");
        Parameters:
        locator - Локатор элемента
        description - Описание элемента.
        hidden - По умолчанию false.
        Returns:

        Объект Element

        Since:

        2.0.3

      • getElementByCustomLocator

         final Element getElementByCustomLocator(By locator, String description)

        Создание объекта Element с помощью кастомного локатора.

        Пример:

        // Пользовательский класс CustomLocator, наследуется от By
        public Element element =
            getElementByCustomLocator(new CustomLocator("locator"),
                "Элемент с кастомным локатором");
        Parameters:
        locator - Локатор элемента
        description - Описание элемента.
        Returns:

        Объект Element

        Since:

        2.0.3

      • getElementByCustomLocator

         final Element getElementByCustomLocator(Element parent, By locator, String description, Boolean hidden)

        Создание объекта Element с помощью кастомного локатора. Первым параметром метод принимает родительский Element, в контексте которого будет осуществляться поиск.

        Пример:

        // Пользовательский класс CustomLocator, наследуется от By
        public Element element =
            getElementByCustomLocator(parentElement, new CustomLocator("locator"),
                "Элемент с кастомным локатором");
        Parameters:
        parent - Родительский элемент
        locator - Локатор элемента
        description - Описание элемента.
        hidden - По умолчанию false.
        Returns:

        Объект Element

        Since:

        2.0.3

      • getElementByCustomLocator

         final Element getElementByCustomLocator(Element parent, By locator, String description)

        Создание объекта Element с помощью кастомного локатора. Первым параметром метод принимает родительский Element, в контексте которого будет осуществляться поиск.

        Пример:

        // Пользовательский класс CustomLocator, наследуется от By
        public Element element =
            getElementByCustomLocator(parentElement, new CustomLocator("locator"),
                "Элемент с кастомным локатором");
        Parameters:
        parent - Родительский элемент
        locator - Локатор элемента
        description - Описание элемента.
        Returns:

        Объект Element

        Since:

        2.0.3