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. Parameters: url - (string) URL, по которому нужно перейти. |
getUrl() |
Возвращает строку с URL открытой страницы. |
getPageSource() |
Возвращает строку с исходным кодом открытой страницы. |
findElement(strategy, selector) |
Возвращает объект Element с одним элементом на открытой странице (или возвращает null, если ни один элемент не соответствует strategy и selector).Parameters: strategy - (string, css selector/link text/partial link text/tag name/xpath) Location strategy;selector - (string) Селектор элемента с использованием указанной стратегии поиска. |
findElements(strategy, target) |
Возвращает массив объектов Element с несколькими элементами на открытой странице (или возвращает пустой массив, если ни один элемент не соответствует стратегии поиска и target).Parameters: strategy - (string, css selector/link text/partial link text/tag name/xpath) Location strategy;target - (string) Селектор элемента с использованием указанной стратегии поиска. |
getCookies() |
Возвращает массив объектов Cookie. |
addCookie(cookie) |
Установить cookies. Parameters: cookie - (object Cookie) Cookie, которую нужно установить. |
getScreenshot() |
Возвращает строку, закодированную в base64, представляющую изображение области просмотра браузера. |
setScreenSize(x,y) |
Установить размер области просмотра браузера. Parameters: x - (string) Ширина в пикселях;y - (string) Высота в пикселях. |
setScriptTimeout(timeout) |
Установить тайм-аут загрузки скрипта. Parameters: timeout - (integer) Значение тайм-аута в миллисекундах. |
setSessionTimeout(timeout) |
Установить тайм-аут сеанса (загрузки страницы). Parameters: timeout - (integer) Значение тайм-аута в миллисекундах. |
setElementWaitTimeout(timeout) |
Установить тайм-аут стратегии поиска элемента (неявный). Parameters: timeout - (integer) Значение тайм-аута в миллисекундах. |
collectPerfEntries(mark) |
Собрать записи производительности для получения с помощью метода getResult().Parameters: mark - (string, optional) метка снимка производительности. |
getRawPerfEntries() |
Возвращает массив объектов записи производительности. |
getResult() |
Возвращает объект Result со статистикой сеанса браузера (сведения об ошибках, снимки производительности и т. д.). |
getError() |
Возвращает объект BrowserError с ошибками браузера (или возвращает null, если ошибок браузера нет). |
setError(message) |
Задать собственное сообщение об ошибке, которое будет включено в объект Result.Parameters: message - (string) Сообщение об ошибке. |
discardError() |
Отбросить ошибку, которая будет возвращена в объекте Result. |
getAlert() |
Возвращает объект Alert с предупреждениями браузера (или возвращает null, если предупреждений браузера нет). |
chromeOptions() |
Возвращает объект chromeOptions с предопределенными параметрами браузера Chrome. |
firefoxOptions() |
Возвращает объект firefoxOptions с предопределенными параметрами браузера Firefox. |
safariOptions() |
Возвращает объект safariOptions с предопределенными параметрами браузера Safari. |
edgeOptions() |
Возвращает объект edgeOptions с предопределенными параметрами браузера Edge. |
switchFrame(target) |
Переключиться на указанный фрейм. Parameters: 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(имя) |
Вернуть строку значения свойства элемента (или вернуть null, если указанное свойство не найдено).Параметры: имя — (строка) Имя свойства. |
getText() |
Вернуть строку текстового значения текстового элемента. |
click() |
Щелчок мышью по элементу. |
clear() |
Очистить содержимое редактируемого элемента. |
sendKeys(клавиши) |
Отослать нажатия клавиш. Параметры: клавиши — (строка) Нажатия клавиш для отправки. |
Cookie
Объект 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 представляет оповещение (alert) веб-страницы, возвращается методом getAlert() объекта Browser и не может быть создан напрямую.
Объект Alert содержит свойство text с текстом оповещения (или null, если оповещения отсутствуют).
Объектом Alert поддерживаются следующие методы.
| Метод | Описание |
|---|---|
accept() |
Принять оповещение. |
dismiss() |
Отклонить оповещение. |
Result
Объект 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. | ||