JsLibrary¶
- public final class JsLibrary¶
Added in version 1.2.1.
Единая точка вызова функций JS-библиотеки gs-automation (
window.GsAutomation).Библиотека самодостаточна: инъецируется лениво, при первом обращении к
call(org.openqa.selenium.JavascriptExecutor, java.lang.String, java.lang.Object...)/callAsync(org.openqa.selenium.JavascriptExecutor, java.lang.String, java.lang.Object...)для конкретногоJavascriptExecutor, без участия внешнего кода (например, тестового окружения). На местах использования не остаётся ни строки JS-синтаксиса — только путь до функции в namespace библиотеки и аргументы вызова.
Methods¶
call¶
- public static Object call(JavascriptExecutor js, String path, Object... args)¶
Вызвать синхронную функцию библиотеки (
executeScript).- Parameters:
js – исполнитель javascript, обычно драйвер браузера
path – путь до функции в namespace
window.GsAutomation, например"dom.isConnected"args – аргументы вызова
- Throws:
AutomationException– еслиpathимеет недопустимый формат
- Returns:
результат, возвращённый функцией
callAsync¶
- public static Object callAsync(JavascriptExecutor js, String path, Object... args)¶
Вызвать асинхронную функцию библиотеки (
executeAsyncScript). Функция библиотеки обязана принимать callback последним параметром и вызывать его ровно один раз с результатом.- Parameters:
js – исполнитель javascript, обычно драйвер браузера
path – путь до функции в namespace
window.GsAutomation, например"label.wait"args – аргументы вызова (без callback — он подставляется автоматически)
- Throws:
AutomationException– еслиpathимеет недопустимый формат
- Returns:
результат, переданный функцией в callback
injectScript¶
- public static void injectScript(JavascriptExecutor js, Class<?> resourceAnchor, String resourceName)¶
Внедрить в текущую страницу произвольный скрипт из ресурсов — в обход namespace/call-by-path API библиотеки. Предназначен для скриптов, не являющихся частью
window.GsAutomation(например, ресурсов тестового окружения), которые нужно внедрить в определённый момент (после логина, после ожидания главной формы и т.п.), а не лениво при первом вызовеcall(org.openqa.selenium.JavascriptExecutor, java.lang.String, java.lang.Object...)/callAsync(org.openqa.selenium.JavascriptExecutor, java.lang.String, java.lang.Object...).Идемпотентность вызывающая сторона обеспечивает сама (например, вызовом ровно один раз за жизненный цикл теста) — метод не кэширует факт инъекции.
- Parameters:
js – исполнитель javascript, обычно драйвер браузера
resourceAnchor – класс, относительно пакета которого разрешается
resourceNameresourceName – имя файла ресурса со скриптом
- Throws:
AutomationException– если ресурс не найден или не удалось его прочитать