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 pass)

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

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

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

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

        Since:

        2.0.5

      • clear

         final Element clear()

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

        Returns:

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

      • submit

         final <Error class: unknown class> 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 name)

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

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

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

        Since:

        2.1.0

      • getDomAttribute

         final String getDomAttribute(String name)

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

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

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

        Since:

        2.1.0

      • setAttribute

         final Element setAttribute(String name, String value)

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

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

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

      • removeAttribute

         final Element removeAttribute(String name)

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

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

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

        Since:

        2.0.6

      • getTagName

         final String getTagName()

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

        Returns:

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

      • getCssValue

         final String getCssValue(String name)

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

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

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

      • setCssValue

         final Element setCssValue(String name, String value)

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

        Parameters:
        name - Имя css-свойства
        value - Значение 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

      • download

         final File download(UsernamePasswordCredentials userCredentials)

        Скачивание файла по ссылке из атрибута "href" или "src" элемента

        Parameters:
        userCredentials - по умолчанию null.
        Returns:

        файл File

        Since:

        2.4.2

      • download

         final File download()

        Скачивание файла по ссылке из атрибута "href" или "src" элемента

        Returns:

        файл File

        Since:

        2.4.2

      • waitFor

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

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

        Примеры:

        pages.page.element.waitFor({ it.isDisplayed() });
        pages.page.element.waitFor({ it.isDisplayed() }, true);
        Parameters:
        func - Лямбда-условие.
        needFail - По умолчанию false.
        Returns:

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

        Since:

        2.4.4

      • waitFor

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

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

        Примеры:

        pages.page.element.waitFor({ it.isDisplayed() });
        pages.page.element.waitFor({ it.isDisplayed() }, true);
        Parameters:
        func - Лямбда-условие.
        Returns:

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

        Since:

        2.4.4

      • waitFor

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

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

        Пример:

        pages.page.element.waitFor(el -> el.isDisplayed(), false, Duration.ofSeconds(20));
        Parameters:
        func - Лямбда-условие.
        needFail - Нужно ли завершать тест, если условие не выполнено
        waitingTime - Время ожидания выполнения условия
        Returns:

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

        Since:

        2.4.4

      • waitFor

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

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

        Пример:

        pages.page.element.waitFor({ it.isDisplayed() }, false, 20.seconds);
        Parameters:
        func - Лямбда-условие.
        needFail - Нужно ли завершать тест, если условие не выполнено
        waitingTime - Время ожидания выполнения условия
        Returns:

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

        Since:

        2.4.4

      • waitFor

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

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

        Примеры:

        pages.page.element.waitFor({ it.isDisplayed() }, false, null, 500.milliseconds);
        pages.page.element.waitFor({ it.isDisplayed() }, true, 20.seconds, 500.milliseconds);
        Parameters:
        func - Лямбда-условие.
        needFail - Нужно ли завершать тест, если условие не выполнено
        waitingTime - Время ожидания выполнения условия.
        interval - Частота проверки выполнения условия в миллисекундах
        Returns:

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

        Since:

        2.4.4

      • waitFor

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

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

        Примеры:

        pages.page.element.waitFor(element -> element.isDisplayed(), false, null, Duration.ofMillis(500));
        pages.page.element.waitFor(el -> el.isDisplayed(), true, Duration.ofSeconds(20), Duration.ofMillis(500));
        Parameters:
        func - Лямбда-условие.
        needFail - Нужно ли завершать тест, если условие не выполнено
        waitingTime - Время ожидания выполнения условия.
        interval - Частота проверки выполнения условия в миллисекундах
        Returns:

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

        Since:

        1.2.1

      • waitForExists

         final Element waitForExists(Boolean needFail)

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

        Примеры:

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

        2.4.4

      • waitForExists

         final Element waitForExists()

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

        Примеры:

        pages.page.element.waitForExists();
        pages.page.element.waitForExists(true);
        Since:

        2.4.4

      • waitForExists

         final Element waitForExists(Boolean needFail, Duration waitingTime)

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

        Примеры:

        pages.page.element.waitForExists(true, 20.seconds);
        Parameters:
        needFail - Нужно ли завершать тест, если условие не выполнено
        waitingTime - Время ожидания наличия элемента на странице
        Returns:

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

        Since:

        2.4.4

      • waitForExists

         final Element waitForExists(Boolean needFail, Duration waitingTime)

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

        Пример:

        pages.page.element.waitForExists(true, Duration.ofSeconds(20));
        Parameters:
        needFail - Нужно ли завершать тест, если условие не выполнено
        waitingTime - Время ожидания наличия элемента на странице
        Returns:

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

        Since:

        1.2.2

      • waitForExistsAnd

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

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

        Примеры:

        pages.page.element.waitForExistsAnd({ it.isDisplayed() });
        pages.page.element.waitForExistsAnd({ it.count() 1 }, false);
        Parameters:
        func - Лямбда-условие.
        needFail - По умолчанию false.
        Returns:

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

        Since:

        2.4.4

      • waitForExistsAnd

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

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

        Примеры:

        pages.page.element.waitForExistsAnd({ it.isDisplayed() });
        pages.page.element.waitForExistsAnd({ it.count() 1 }, false);
        Parameters:
        func - Лямбда-условие.
        Returns:

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

        Since:

        2.4.4

      • waitForExistsAnd

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

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

        Пример:

        pages.page.element.waitForExistsAnd(el -> el.count() 1, false, Duration.ofSeconds(20));
        Parameters:
        func - Лямбда-условие.
        needFail - Нужно ли завершать тест, если условие не выполнено
        waitingTime - Время ожидания наличия элемента на странице и выполнения условия для элемента
        Returns:

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

        Since:

        2.4.4

      • waitForExistsAnd

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

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

        Пример:

        pages.page.element.waitForExistsAnd({ it.isDisplayed() }, false, 20.seconds);
        Parameters:
        func - Лямбда-условие.
        needFail - Нужно ли завершать тест, если условие не выполнено
        waitingTime - Время ожидания наличия элемента на странице и выполнения условия для элемента
        Returns:

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

        Since:

        2.4.4

      • waitForExistsAnd

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

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

        Примеры:

        pages.page.element.waitForExistsAnd({ it.isDisplayed() }, false, null, 500.milliseconds);
        pages.page.element.waitForExistsAnd({ it.isDisplayed() }, true, 20.seconds, 500.milliseconds);
        Parameters:
        func - Лямбда-условие.
        needFail - По умолчанию false.
        waitingTime - Время ожидания наличия элемента на странице и выполнения условия для элемента.
        interval - Частота проверки выполнения условия в миллисекундах
        Returns:

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

        Since:

        2.4.4

      • waitForExistsAnd

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

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

        Примеры:

        pages.page.element.waitForExistsAnd(element -> element.isDisplayed(), false, null, Duration.ofMillis(500));
        pages.page.element.waitForExistsAnd(el -> el.isDisplayed(), true, Duration.ofSeconds(20), Duration.ofMillis(500));
        Parameters:
        func - Лямбда-условие.
        needFail - Нужно ли завершать тест, если условие не выполнено
        waitingTime - Время ожидания наличия элемента на странице и выполнения условия для элемента.
        interval - По умолчанию 100.
        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(Duration 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:

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