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