.. java:import:: org.openqa.selenium JavascriptExecutor .. java:import:: org.openqa.selenium WebElement Focusable ========= .. java:package:: ru.bitec.gs.automation.client :noindex: .. java:type:: public interface Focusable extends WithWebElement .. versionadded:: 1.2.1 Интерфейс, реализующий симуляцию действий пользователя, приводящих к установке признака "Фокус". Methods ------- focus ^^^^^ .. java:method:: default void focus() :outertype: Focusable Выполняет установку фокуса на dom-элемент, соответствующий UI-элементу. При установке фокуса выполняется вызов javascript-функции `focus()` на dom-элеменете, предоставляемом методом :java:ref:`getFocusableWebElement() `. Никаких проверок на допустимость вызова этой функции не производится. getFocusableWebElement ^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: default WebElement getFocusableWebElement() :outertype: Focusable Получить dom-элемент, в который будет установлен фокус. Нужно переопределить в том случае, если требуется перенаправить фокус в dom-элемент, отличающийся от содержащегося в текущем классе. :return: dom-элемент isFocusInsideElementWithAttribute ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: static boolean isFocusInsideElementWithAttribute(JavascriptExecutor js, String attributeName) :outertype: Focusable .. versionadded:: 1.2.1 Проверить, находится ли фокус ввода внутри элемента с указанным атрибутом. Проверка выполняется подъёмом от активного элемента вверх по dom-дереву. Селектор не стал использовать. Имена data-атрибутов приложения содержат точку, которая в CSS является разделителем и требует экранирования. Метод статический: вопрос задаётся документу, а не конкретному UI-элементу, и нужен там, где page object'а на руках нет. :param js: исполнитель javascript, обычно драйвер браузера :param attributeName: имя атрибута :return: true, если у активного элемента либо у одного из его предков есть такой атрибут isFocused ^^^^^^^^^ .. java:method:: default boolean isFocused() :outertype: Focusable Проверить, находится ли "фокус" в текущем dom-элементе. Фокус считается находящимся в элементе и тогда, когда активным элементом документа стал его потомок: разметка редакторов устроена так, что фокус получает вложенный input, а не сам элемент, за который отвечает объект. :return: true, если текущий dom-элемент содержит фокус waitFocused ^^^^^^^^^^^ .. java:method:: default void waitFocused() throws AutomationException :outertype: Focusable Дождаться, пока dom-элемент получит фокус ввода. Требуется там, где клавиатурная последовательность посылается не в конкретный элемент, а в активный элемент документа. Фокус переходит в элемент асинхронно, уже после того, как элемент отрисован. :throws AutomationException: если элемент не получил фокус за отведённое время