Focusable

public interface Focusable extends WithWebElement

Added in version 1.2.1.

Интерфейс, реализующий симуляцию действий пользователя, приводящих к установке признака “Фокус”.

Methods

focus

void focus()

Выполняет установку фокуса на dom-элемент, соответствующий UI-элементу.

При установке фокуса выполняется вызов javascript-функции focus() на dom-элеменете, предоставляемом методом getFocusableWebElement(). Никаких проверок на допустимость вызова этой функции не производится.

getFocusableWebElement

WebElement getFocusableWebElement()

Получить dom-элемент, в который будет установлен фокус. Нужно переопределить в том случае, если требуется перенаправить фокус в dom-элемент, отличающийся от содержащегося в текущем классе.

Returns:

dom-элемент

isFocusInsideElementWithAttribute

static boolean isFocusInsideElementWithAttribute(JavascriptExecutor js, String attributeName)

Added in version 1.2.1.

Проверить, находится ли фокус ввода внутри элемента с указанным атрибутом.

Проверка выполняется подъёмом от активного элемента вверх по dom-дереву. Селектор не стал использовать. Имена data-атрибутов приложения содержат точку, которая в CSS является разделителем и требует экранирования.

Метод статический: вопрос задаётся документу, а не конкретному UI-элементу, и нужен там, где page object’а на руках нет.

Parameters:
  • js – исполнитель javascript, обычно драйвер браузера

  • attributeName – имя атрибута

Returns:

true, если у активного элемента либо у одного из его предков есть такой атрибут

isFocused

boolean isFocused()

Проверить, находится ли “фокус” в текущем dom-элементе.

Фокус считается находящимся в элементе и тогда, когда активным элементом документа стал его потомок: разметка редакторов устроена так, что фокус получает вложенный input, а не сам элемент, за который отвечает объект.

Returns:

true, если текущий dom-элемент содержит фокус

waitFocused

void waitFocused()

Дождаться, пока dom-элемент получит фокус ввода.

Требуется там, где клавиатурная последовательность посылается не в конкретный элемент, а в активный элемент документа. Фокус переходит в элемент асинхронно, уже после того, как элемент отрисован.

Throws:
  • AutomationException – если элемент не получил фокус за отведённое время