Class Element

  • All Implemented Interfaces:

    
    public class Element
    
                        

    Класс предоставляет методы взаимодействия с элементами на странице браузера. Экземпляры класса создаются методами PageBase.getElementByXpath, PageBase.getElementByClassName и другими методами getElementBy... класса PageBase

    • Constructor Detail

      • Element

        Element(Element element)
        Конструктор для создания пользовательских классов элементов.
    • Method Detail

      • getSelect

         final Element.Select getSelect()

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

        Пример:

        var element = new getElementByXpath("//xpath", "Описание элемента");
        
        element.getSelect().selectByText("text");
        Returns:

        Объект Element.Select

        Since:

        2.3.1

      • isHidden

         final Boolean isHidden()

        Метод возвращает признак скрытости элемента

        Returns:

        Признак скрытости элемента

      • toList

         final List<Element> toList()

        Метод возвращает список элементов, найденных по локатору данного элемента.

        У найденных элементов локатор меняется на XPath.

        Если у этого элемента используется css-, кастомный или относительный локатор и есть родительский элемент, то возвращается список элементов без родительских элементов.

        Внимание! Использование метода одновременно с созданием элемента вызовет ошибку:

        // Неправильное использование. Ошибка создания класса страницы
        public List<Element> elements = getElementById("id", "Описание").toList();
        
        // Правильное использование
        public Element element = getElementById("id", "Описание");
        
        public void pageMethod() {
             var elements = element.toList();
             // ...
        }
        Returns:

        Список элементов

      • exists

         final Boolean exists()

        Проверка наличия элемента. Возвращает true, если элемент найден.

        Метод не использует таймаут на поиск элемента и выдает результат на момент вызова.

        Returns:

        true, если элемент найден

      • notExists

         final Boolean notExists()

        Проверка отсутствия элемента. Возвращает true, если элемент не найден.

        Метод не использует таймаут на поиск элемента и выдает результат на момент вызова.

        Returns:

        true, если элемент не найден

      • click

         final Element click(Boolean withJS)

        Клик по элементу

        Parameters:
        withJS - По умолчанию false.
        Returns:

        Элемент, у которого был вызван метод

      • click

         final Element click()

        Клик по элементу

        Returns:

        Элемент, у которого был вызван метод

      • doubleClick

         final Element doubleClick()

        Двойной клик по элементу

        Returns:

        Элемент, у которого был вызван метод

      • rightClick

         final Element rightClick()

        Клик правой кнопкой мыши по элементу

        Returns:

        Элемент, у которого был вызван метод

      • scrollToCenter

         final Element scrollToCenter()

        Прокрутка элемента к центру экрана

        Returns:

        Элемент, у которого был вызван метод

        Since:

        1.2.2

      • scrollToTop

         final Element scrollToTop()

        Прокрутка элемента к верху экрана

        Returns:

        Элемент, у которого был вызван метод

        Since:

        2.1.1

      • scrollToBottom

         final Element scrollToBottom()

        Прокрутка элемента к низу экрана

        Returns:

        Элемент, у которого был вызван метод

        Since:

        2.1.1

      • sendKeys

         final Element sendKeys(CharSequence message, Boolean clear)

        Отправка сообщения в элемент.

        Производится путем эмуляции нажатия клавиш на клавиатуре.

        Для отправки сообщения с помощью JavaScript используйте метод setValue.

        Для отправки пароля используйте метод sendPassword

        Parameters:
        message - Текст сообщения
        clear - По умолчанию false.
        Returns:

        Элемент, у которого был вызван метод

      • sendKeys

         final Element sendKeys(CharSequence message)

        Отправка сообщения в элемент.

        Производится путем эмуляции нажатия клавиш на клавиатуре.

        Для отправки сообщения с помощью JavaScript используйте метод setValue.

        Для отправки пароля используйте метод sendPassword

        Parameters:
        message - Текст сообщения
        Returns:

        Элемент, у которого был вызван метод

      • setValue

         final Element setValue(String message)

        Отправка сообщения в элемент.

        В отличие от метода sendKeys ввод сообщения производится с помощью JavaScript.

        Предыдущее содержимое элемента удаляется.

        Для отправки пароля используйте метод sendPassword

        Parameters:
        message - Текст сообщения
        Returns:

        Элемент, у которого был вызван метод

        Since:

        2.1.0

      • sendPassword

         final Element sendPassword(String password)

        Отправка пароля в элемент.

        Работает аналогично методу sendKeys, но содержимое пароля не логируется

        Parameters:
        password - Пароль
        Returns:

        Элемент, у которого был вызван метод

        Since:

        2.0.5

      • clear

         final Element clear()

        Очистка элемента (удаление текста из текстового поля, области текста и т.д.)

        Returns:

        Элемент, у которого был вызван метод

      • submit

         final Element submit()

        Отправка формы

        Returns:

        Элемент, у которого был вызван метод

      • count

         final Integer count()

        Количество элементов с таким локатором

        Returns:

        Количество элементов

      • isEnabled

         final Boolean isEnabled()

        Получение значения свойства enabled элемента

        Returns:

        Значение свойства enabled

      • isDisplayed

         final Boolean isDisplayed()

        Получение значения свойства displayed элемента

        Returns:

        Значение свойства displayed

      • getText

         final String getText()

        Получение текста элемента

        Returns:

        Текст элемента

      • getDomProperty

         final String getDomProperty(String property)

        Получение значения Dom-свойства элемента

        Parameters:
        property - Название свойства
        Returns:

        Текст свойства

        Since:

        2.1.0

      • getDomAttribute

         final String getDomAttribute(String attribute)

        Получение значения Dom-атрибута элемента

        Parameters:
        attribute - Название атрибута
        Returns:

        Текст атрибута

        Since:

        2.1.0

      • getAttribute

         final String getAttribute(String attribute)

        Получение значения атрибута элемента

        Parameters:
        attribute - Название атрибута
        Returns:

        Текст атрибута

      • setAttribute

         final Element setAttribute(String attributeName, String attributeValue)

        Установка атрибута элементу

        Parameters:
        attributeName - Имя атрибута
        attributeValue - Значение атрибута
        Returns:

        Элемент, у которого был вызван метод

      • removeAttribute

         final Element removeAttribute(String attribute)

        Удаление атрибута элемента

        Parameters:
        attribute - Название атрибута
        Returns:

        Элемент, у которого был вызван метод

        Since:

        2.0.6

      • getTagName

         final String getTagName()

        Получение имени тега элемента

        Returns:

        Имя тега элемента

      • getCssValue

         final String getCssValue(String propertyName)

        Получение значения css-свойства элемента

        Parameters:
        propertyName - Название css-свойства
        Returns:

        Значение css-свойства элемента

      • setCssValue

         final Element setCssValue(String propertyName, String propertyValue)

        Установка css-свойства элементу

        Parameters:
        propertyName - Имя css-свойства
        propertyValue - Значение css-свойства
        Returns:

        Элемент, у которого был вызван метод

      • getSize

         final Dimension getSize()

        Получение размеров элемента

        Returns:

        Размеры элемента

      • getLocation

         final Point getLocation()

        Получение координат элемента

        Returns:

        Координаты элемента

      • getRectangle

         final Rectangle getRectangle()

        Получение размеров и координат элемента

        Returns:

        Размеры и координаты элемента

      • getInnerHtml

         final String getInnerHtml()

        Получение html-разметки элемента

        Returns:

        Разметка элемента

      • clearElementState

         final Element clearElementState(Boolean clearParents)

        Очистка кэша элемента. Следующее обращение к элементу начнется с его поиска.

        Parameters:
        clearParents - По умолчанию false.
        Returns:

        Элемент, у которого был вызван метод

      • clearElementState

         final Element clearElementState()

        Очистка кэша элемента. Следующее обращение к элементу начнется с его поиска.

        Returns:

        Элемент, у которого был вызван метод

      • dragAndDropTo

         final Element dragAndDropTo(Element element)

        Перетягивание этого элемента на переданный элемент.

        Метод не работает со скрытыми элементами

        Parameters:
        element - Элемент, на который выполнится перетягивание
        Returns:

        Элемент, у которого был вызван метод

      • ifExists

         final Element ifExists(Consumer<Element> consumer)

        Если элемент присутствует на странице, метод выполняет переданные действия (consumer) над элементом

        Parameters:
        consumer - Действие над элементом
        Returns:

        Элемент, у которого был вызван метод

        Since:

        2.2.0

      • waitFor

         final Element waitFor(Function<Element, Boolean> func, Boolean needFail, Integer waitingTime, Integer interval)

        Ожидание выполнения условия для элемента.

        Примеры:

        pages.page.element.waitFor(Element::isEnabled);
        pages.page.element.waitFor(element -> element.isDisplayed());
        pages.page.element.waitFor(element -> element.isDisplayed(), false);
        pages.page.element.waitFor(element -> element.isDisplayed(), false, 20);
        pages.page.element.waitFor(element -> element.isDisplayed(), false, null, 500);
        pages.page.element.waitFor(element -> element.isDisplayed(), true, 20, 500);
        Parameters:
        func - Лямбда-условие.
        needFail - По умолчанию false.
        waitingTime - По умолчанию - null.
        interval - По умолчанию 100.
        Returns:

        Элемент, у которого был вызван метод

        Since:

        1.2.1

      • waitFor

         final Element waitFor(Function<Element, Boolean> func, Boolean needFail, Integer waitingTime)

        Ожидание выполнения условия для элемента.

        Примеры:

        pages.page.element.waitFor(Element::isEnabled);
        pages.page.element.waitFor(element -> element.isDisplayed());
        pages.page.element.waitFor(element -> element.isDisplayed(), false);
        pages.page.element.waitFor(element -> element.isDisplayed(), false, 20);
        pages.page.element.waitFor(element -> element.isDisplayed(), false, null, 500);
        pages.page.element.waitFor(element -> element.isDisplayed(), true, 20, 500);
        Parameters:
        func - Лямбда-условие.
        needFail - По умолчанию false.
        waitingTime - По умолчанию - null.
        Returns:

        Элемент, у которого был вызван метод

        Since:

        1.2.1

      • waitFor

         final Element waitFor(Function<Element, Boolean> func, Boolean needFail)

        Ожидание выполнения условия для элемента.

        Примеры:

        pages.page.element.waitFor(Element::isEnabled);
        pages.page.element.waitFor(element -> element.isDisplayed());
        pages.page.element.waitFor(element -> element.isDisplayed(), false);
        pages.page.element.waitFor(element -> element.isDisplayed(), false, 20);
        pages.page.element.waitFor(element -> element.isDisplayed(), false, null, 500);
        pages.page.element.waitFor(element -> element.isDisplayed(), true, 20, 500);
        Parameters:
        func - Лямбда-условие.
        needFail - По умолчанию false.
        Returns:

        Элемент, у которого был вызван метод

        Since:

        1.2.1

      • waitFor

         final Element waitFor(Function<Element, Boolean> func)

        Ожидание выполнения условия для элемента.

        Примеры:

        pages.page.element.waitFor(Element::isEnabled);
        pages.page.element.waitFor(element -> element.isDisplayed());
        pages.page.element.waitFor(element -> element.isDisplayed(), false);
        pages.page.element.waitFor(element -> element.isDisplayed(), false, 20);
        pages.page.element.waitFor(element -> element.isDisplayed(), false, null, 500);
        pages.page.element.waitFor(element -> element.isDisplayed(), true, 20, 500);
        Parameters:
        func - Лямбда-условие.
        Returns:

        Элемент, у которого был вызван метод

        Since:

        1.2.1

      • waitForExists

         final Element waitForExists(Boolean needFail, Integer waitingTime)

        Ожидание наличия элемента на странице.

        Примеры:

        pages.page.element.waitForExists();
        pages.page.element.waitForExists(false);
        pages.page.element.waitForExists(true, 20);
        Parameters:
        needFail - По умолчанию false.
        waitingTime - По умолчанию - null.
        Returns:

        Элемент, у которого был вызван метод

        Since:

        1.2.2

      • waitForExists

         final Element waitForExists(Boolean needFail)

        Ожидание наличия элемента на странице.

        Примеры:

        pages.page.element.waitForExists();
        pages.page.element.waitForExists(false);
        pages.page.element.waitForExists(true, 20);
        Parameters:
        needFail - По умолчанию false.
        Returns:

        Элемент, у которого был вызван метод

        Since:

        1.2.2

      • waitForExists

         final Element waitForExists()

        Ожидание наличия элемента на странице.

        Примеры:

        pages.page.element.waitForExists();
        pages.page.element.waitForExists(false);
        pages.page.element.waitForExists(true, 20);
        Returns:

        Элемент, у которого был вызван метод

        Since:

        1.2.2

      • waitForExistsAnd

         final Element waitForExistsAnd(Function<Element, Boolean> func, Boolean needFail, Integer waitingTime, Integer interval)

        Ожидание наличия элемента на странице и выполнения условия для элемента.

        Примеры:

        pages.page.element.waitForExistsAnd(Element::isEnabled).click();
        pages.page.element.waitForExistsAnd(element -> element.isDisplayed());
        pages.page.element.waitForExistsAnd(element -> element.isDisplayed(), false);
        pages.page.element.waitForExistsAnd(element -> element.isDisplayed(), false, 20);
        pages.page.element.waitForExistsAnd(element -> element.isDisplayed(), false, null, 500);
        pages.page.element.waitForExistsAnd(element -> element.isDisplayed(), true, 20, 500);
        Parameters:
        func - Лямбда-условие.
        needFail - По умолчанию false.
        waitingTime - По умолчанию - null.
        interval - По умолчанию 100.
        Returns:

        Элемент, у которого был вызван метод

        Since:

        1.2.2

      • waitForExistsAnd

         final Element waitForExistsAnd(Function<Element, Boolean> func, Boolean needFail, Integer waitingTime)

        Ожидание наличия элемента на странице и выполнения условия для элемента.

        Примеры:

        pages.page.element.waitForExistsAnd(Element::isEnabled).click();
        pages.page.element.waitForExistsAnd(element -> element.isDisplayed());
        pages.page.element.waitForExistsAnd(element -> element.isDisplayed(), false);
        pages.page.element.waitForExistsAnd(element -> element.isDisplayed(), false, 20);
        pages.page.element.waitForExistsAnd(element -> element.isDisplayed(), false, null, 500);
        pages.page.element.waitForExistsAnd(element -> element.isDisplayed(), true, 20, 500);
        Parameters:
        func - Лямбда-условие.
        needFail - По умолчанию false.
        waitingTime - По умолчанию - null.
        Returns:

        Элемент, у которого был вызван метод

        Since:

        1.2.2

      • waitForExistsAnd

         final Element waitForExistsAnd(Function<Element, Boolean> func, Boolean needFail)

        Ожидание наличия элемента на странице и выполнения условия для элемента.

        Примеры:

        pages.page.element.waitForExistsAnd(Element::isEnabled).click();
        pages.page.element.waitForExistsAnd(element -> element.isDisplayed());
        pages.page.element.waitForExistsAnd(element -> element.isDisplayed(), false);
        pages.page.element.waitForExistsAnd(element -> element.isDisplayed(), false, 20);
        pages.page.element.waitForExistsAnd(element -> element.isDisplayed(), false, null, 500);
        pages.page.element.waitForExistsAnd(element -> element.isDisplayed(), true, 20, 500);
        Parameters:
        func - Лямбда-условие.
        needFail - По умолчанию false.
        Returns:

        Элемент, у которого был вызван метод

        Since:

        1.2.2

      • waitForExistsAnd

         final Element waitForExistsAnd(Function<Element, Boolean> func)

        Ожидание наличия элемента на странице и выполнения условия для элемента.

        Примеры:

        pages.page.element.waitForExistsAnd(Element::isEnabled).click();
        pages.page.element.waitForExistsAnd(element -> element.isDisplayed());
        pages.page.element.waitForExistsAnd(element -> element.isDisplayed(), false);
        pages.page.element.waitForExistsAnd(element -> element.isDisplayed(), false, 20);
        pages.page.element.waitForExistsAnd(element -> element.isDisplayed(), false, null, 500);
        pages.page.element.waitForExistsAnd(element -> element.isDisplayed(), true, 20, 500);
        Parameters:
        func - Лямбда-условие.
        Returns:

        Элемент, у которого был вызван метод

        Since:

        1.2.2

      • assertThat

         final Element assertThat(Function<Element, Boolean> func, String errorMessage)

        Проверка истинности условия. Если условие ложно, то вызывается исключение, логируется сообщение об ошибке, тест останавливается.

        Пример:

        pages.page.element.assertThat(element -> element.isEnabled(), "Элемент недоступен");

        или (с использованием ссылки на метод):

        pages.page.element.assertThat(Element::isEnabled, "Элемент недоступен");

        аналогично вызову метода Assert.isTrue:

        Assert.isTrue(() -> pages.page.element.isEnabled(), "Элемент недоступен");
        Parameters:
        func - Проверяемое условие.
        errorMessage - Сообщение об ошибке
        Returns:

        Элемент, у которого был вызван метод

        Since:

        1.2.3

      • assertThat

         final Element assertThat(Function<Element, Boolean> func, String description, String errorMessage)

        Проверка истинности условия. Если условие ложно, то вызывается исключение, логируется сообщение об ошибке, тест останавливается.

        Пример:

        pages.page.element.assertThat(element -> element.isEnabled(), "Описание проверки", "Элемент недоступен");

        или (с использованием ссылки на метод):

        pages.page.element.assertThat(Element::isEnabled, "Описание проверки", "Элемент недоступен");

        аналогично вызову метода Assert.isTrue:

        Assert.isTrue(() -> pages.page.element.isEnabled(), "Описание проверки", "Элемент недоступен");
        Parameters:
        func - Проверяемое условие.
        description - Описание проверки
        errorMessage - Сообщение об ошибке
        Returns:

        Элемент, у которого был вызван метод

        Since:

        1.2.3

      • assertAndAccumulateThat

         final Element assertAndAccumulateThat(Function<Element, Boolean> func, String errorMessage)

        Проверка истинности условия. Если условие ложно, то вызывается исключение, логируется сообщение об ошибке, но тест не останавливается.

        Пример:

        pages.page.element.assertAndAccumulateThat(element -> element.isEnabled(), "Элемент недоступен");

        или (с использованием ссылки на метод):

        pages.page.element.assertAndAccumulateThat(Element::isEnabled, "Элемент недоступен");

        аналогично вызову метода Assert.isTrueAndAccumulate:

        Assert.isTrueAndAccumulate(() -> pages.page.element.isEnabled(), "Элемент недоступен");
        Parameters:
        func - Проверяемое условие.
        errorMessage - Сообщение об ошибке
        Returns:

        Элемент, у которого был вызван метод

        Since:

        2.1.0

      • assertAndAccumulateThat

         final Element assertAndAccumulateThat(Function<Element, Boolean> func, String description, String errorMessage)

        Проверка истинности условия. Если условие ложно, то вызывается исключение, логируется сообщение об ошибке, но тест не останавливается.

        Пример:

        pages.page.element.assertAndAccumulateThat(element -> element.isEnabled(), "Описание проверки", "Элемент недоступен");

        или (с использованием ссылки на метод):

        pages.page.element.assertAndAccumulateThat(Element::isEnabled, "Описание проверки", "Элемент недоступен");

        аналогично вызову метода Assert.isTrueAndAccumulate:

        Assert.isTrueAndAccumulate(() -> pages.page.element.isEnabled(), "Описание проверки", "Элемент недоступен");
        Parameters:
        func - Проверяемое условие.
        description - Описание проверки
        errorMessage - Сообщение об ошибке
        Returns:

        Элемент, у которого был вызван метод

        Since:

        2.1.0

      • takeScreenshot

         final File takeScreenshot()

        Создание скриншота элемента. Скриншот добавляется в лог и отчет Allure

        Returns:

        Файл со скриншотом или null, если была ошибка создания скриншота

        Since:

        1.2.4

      • toWebElement

         final WebElement toWebElement(Integer timeout)

        Получение объекта WebElement. Используется в связке с методом PageBase.performActions

        Parameters:
        timeout - Таймаут на поиск элемента.
        Returns:

        Объект WebElement или null, если элемент не найден

        Since:

        2.0.1

      • toWebElement

         final WebElement toWebElement()

        Получение объекта WebElement. Используется в связке с методом PageBase.performActions

        Returns:

        Объект WebElement или null, если элемент не найден

        Since:

        2.0.1

      • uploadFile

         final Element uploadFile(String files)

        Загрузка одного или нескольких файлов.

        Parameters:
        files - Файлы
        Returns:

        Элемент, у которого был вызван метод

        Since:

        2.3.1

      • uploadFile

         final Element uploadFile(File files)

        Загрузка одного или нескольких файлов.

        Parameters:
        files - Файлы
        Returns:

        Элемент, у которого был вызван метод

        Since:

        2.3.1

      • toString

         String toString()

        Описание элемента и его локатор в виде строки

        Returns:

        Текстовое представление элемента