В этом разделе описываются расширения Zabbix к языку JavaScript, реализованные с помощью Duktape для использования в скрипте браузерного элемента данных. Эти расширения дополняют объекты JavaScript, описанные на странице Дополнительные объекты JavaScript.
Объект Browser
управляет сессиями WebDriver'а, инициализируя сессию при создании и завершая её при уничтожении. Один скрипт может поддерживать до четырех объектов Browser
.
Чтобы создать объект Browser
, используйте синтаксис: new Browser(опции)
. Параметр опции
(объект JSON) определяет опции браузера, обычно результат метода опций WebDriver-а (например, Browser.chromeOptions()
).
С объектом Browser
поддерживаются следующие методы.
Метод | Описание |
---|---|
navigate(url) |
Перейти к указанному URL. Параметры: url — (строка) URL-адрес для перехода. |
getUrl() |
Вернуть строку URL-адреса открытой страницы. |
getPageSource() |
Вернуть строку исходного кода открытой страницы. |
findElement(стратегия, селектор) |
Вернуть объект Element с одним элементом на открытой странице (или вернуть null , если ни один элемент не соответствует параметрам стратегия и селектор ).Параметры: стратегия — (строка, CSS selector/link text/partial link text/tag name/Xpath) Стратегия расположения;селектор — (строка) Селектор элемента, использующий указанную стратегию расположения. |
findElements(стратегия, цель) |
Вернуть массив объектов Element с несколькими элементами на открытой странице (или вернуть пустой массив, если ни один элемент не соответствует стратегии расположения и цели).Параметры: стратегия — (строка, CSS selector/link text/partial link text/tag name/Xpath) Стратегия расположения;цель — (строка) Селектор элементов, использующий указанную стратегию расположения. |
getCookies() |
Вернуть массив объектов Cookie . |
addCookie(cookie) |
Задать cookies. Параметры: cookie — (объект Cookie ) Cookie для установки. |
getScreenshot() |
Вернуть строку в кодировке Base64, представляющую изображение области просмотра браузера. |
setScreenSize(x,y) |
Задать размер области просмотра браузера. Параметры: x — (строка) Высота в пикселях;y — (строка) Ширина в пикселях. |
setScriptTimeout(тайм-аут) |
Задать время ожидания (тайм-аут) загрузки скрипта. Параметры: тайм-аут — (целое число) Значение тайм-аута в миллисекундах. |
setSessionTimeout(тайм-аут) |
Задать тайм-аут сессии (загрузки страницы). Параметры: тайм-аут — (целое число) Значение тайм-аута в миллисекундах. |
setElementWaitTimeout(тайм-аут) |
Задать тайм-аут стратегии расположения элементов (неявный). Параметры: тайм-аут — (integer) Значение тайм-аута в миллисекундах. |
collectPerfEntries(отметка) |
Собрать записи производительности для извлечения с помощью метода getResult() .Параметры: отметка — (строка, опционально) Отметка снимка производительности. |
getRawPerfEntries() |
Вернуть массив объектов записей производительности. |
getResult() |
Вернуть объект Result со статистикой сессии браузера (информация об ошибках, снимки производительности и т. д.). |
getError() |
Вернуть объект BrowserError с ошибками браузера (или вернуть null , если ошибок браузера нет). |
setError(сообщение) |
Задать пользовательское сообщение об ошибке, которое будет включено в объект Result .Параметры: сообщение — (строка) Сообщение об ошибке. |
discardError() |
Сбросить ошибку, возвращаемую в объекте Result . |
getAlert() |
Вернуть объект Alert с оповещениями браузера (или вернуть null , если оповещения браузера отсутствуют). |
chromeOptions() |
Вернуть объект chromeOptions с предопределёнными параметрами браузера Chrome. |
firefoxOptions() |
Вернуть объект firefoxOptions с предопределёнными параметрами браузера Firefox. |
safariOptions() |
Вернуть объект safariOptions с предопределёнными параметрами браузера Safari. |
edgeOptions() |
Вернуть объект edgeOptions с предопределёнными параметрами браузера Edge. |
switchFrame(цель) |
Переключиться на указанный фрейм. Поддерживается с версии 7.0.4. Параметры: цель — (элемент браузера или целое число, опционально) Целевой фрейм. Чтобы выбрать фрейм по элементу, передайте элемент. Чтобы выбрать фрейм по индексу, передайте число. Если оставить пустым, переключится на контекст просмотра верхнего уровня. |
Все методы браузера могут выбрасывать следующие ошибки:
BrowserError
— производная от объекта Error
, которая выбрасывается, если конструктор Browser
завершается неудачей; содержит дополнительное свойство browser
с объектом Browser
, который выбросил эту BrowserError
.WebdriverError
— производная от объекта BrowserError
; содержит те же свойства, что и объект BrowserError
, которые указывают, была ли ошибка сгенерирована в ответ на ошибку в ответе WebDriver-а.Объект Element
возвращается методами findElement()
/findElements()
объекта Browser
и не может быть создан напрямую.
Объект Element
представляет элемент на веб-странице и предоставляет методы для взаимодействия с ним.
Объектом Element
поддерживаются следующие методы.
Метод | Описание |
---|---|
getAttribute(имя) |
Вернуть строку значения атрибута для атрибута элемента (или вернуть null , если указанный атрибут не найден).Параметры: имя — (строка) Имя атрибута. |
getProperty(имя) |
Вернуть строку значения свойства элемента property (или вернуть null , если указанное свойство не найдено).Параметры: имя — (строка) Имя свойства. |
getText() |
Вернуть строку текста значения текстового элемента. |
click() |
Щелчок мышью по элементу. |
clear() |
Очистить содержимое редактируемого элемента. |
sendKeys(ключи) |
Отослать ключи. Параметры: ключи — (строка) Ключи для отправки. |
Объект Cookie
возвращается методом getCookies()
объекта Browser
и передаётся в метод addCookie()
.
Хотя у объекта Cookie
нет методов, он может содержать следующие свойства:
Свойство | Тип | Описание |
---|---|---|
name | строка | Имя cookie. |
value | строка | Значение cookie. |
path | строка | Путь, для которого cookie действителен. По умолчанию "/" , если не указан при добавлении cookie. |
domain | строка | Домен, в котором cookie является видимым. По умолчанию — домен URL активного документа текущего контекста просмотра сессии, если не указан при добавлении cookie |
secure | логический | Указывает, является ли cookie безопасным. По умолчанию false , если не указан при добавлении cookie. |
httpOnly | логический | Указывает, является ли cookie HTTP-only. По умолчанию false , если не указан при добавлении cookie. |
expiry | целое число | Время истечения срока действия cookie (в секундах с начала эпохи Unix). Не должно быть установлено, если не указано при добавлении файла cookie. |
sameSite | строка | Атрибут sameSite файла cookie, который управляет тем, должен ли файл cookie быть ограничен контекстом первой стороны (first-party) или того же сайта.Может быть установлено как "Lax" или "Strict" .По умолчанию "None" , если не указан при добавлении cookie. |
Объект Alert
представляет оповещение (alert) веб-страницы, возвращается методом getAlert()
объекта Browser
и не может быть создан напрямую.
Объект Alert
содержит свойство text
с текстом оповещения (или null
, если оповещения отсутствуют).
Объектом Alert
поддерживаются следующие методы.
Метод | Описание |
---|---|
accept() |
Принять оповещение. |
dismiss() |
Отклонить оповещение. |
Объект Result
содержит статистику сессии и возвращается методом getResult()
объекта Browser
.
Обычно объект Result
преобразуется в строку и возвращается из скрипта, а затем разбирается на значения зависимых элементов данных посредством предварительной обработки.
Хотя объект Result
не имеет методов, он может содержать следующие свойства.
Свойство | Тип | Описание | ||
---|---|---|---|---|
duration | строка | Длительность сессии от создания сессии до получения результата. | ||
error | объект | Информация об ошибке. | ||
http_status | целое число | Статус HTTP, возвращаемый WebDriver'ом (или 0, если ошибок WebDriver'а нет). | ||
error_code | строка | Ошибка, возвращаемая WebDriver'ом (или пустая строка, если ошибок WebDriver'а нет). | ||
message | строка | Сообщение об ошибке WebDriver'а (или пустая строка, если ошибок WebDriver'а нет). | ||
performance_data | объект | Статистика производительности. | ||
summary | объект | Сводка производительности. | ||
navigation | объект | Сводка навигации. | ||
resource | объект | Сводка ресурсов. | ||
details | массив объектов | Статистика производительности после каждой операции, которая могла привести к навигации. | ||
mark | строка | (опционально) Отметка снимка производительности, указанная с помощью метода collectPerfEntries() . |
||
navigation | объект | Статистика навигации. | ||
resource | объект | Сводка ресурсов для этого шага. | ||
user | массив объектов | Массив статистики отметки / типа измерения. | ||
marks | массив объектов | Отмеченные индексы моментальных снимков производительности. | ||
name | строка | Имя отметки моментального снимка производительности. | ||
index | целое число | Индекс моментального снимка производительности в массиве details. |