Esta es una traducción de la página de documentación original en español. Ayúdanos a mejorarla.

2 Objetos JavaScript de métrica de navegador

Descripción general

Esta sección describe las adiciones de Zabbix al lenguaje JavaScript implementado con Duktape para su uso en el script de la métrica de navegador. Estas adiciones complementan los objetos JavaScript descritos en la página Objetos JavaScript adicionales.

El objeto Browser administra las sesiones de WebDriver, inicializando una sesión al crearla y finalizándola al destruirla. Un solo script puede admitir hasta cuatro objetos Browser.

Para construir un objeto Browser, utilice la sintaxis new Browser(options). El parámetro options (objeto JSON) especifica las opciones del navegador, normalmente el resultado del método de opciones de WebDriver (por ejemplo, Browser.chromeOptions()).

Los siguientes métodos son compatibles con el objeto Browser.

Método Descripción
navigate(url) Navegar a la URL especificada.

Parámetros:
url - (cadena) URL a la que navegar.
getUrl() Devuelve una cadena de la URL de la página abierta.
getPageSource() Devuelve una cadena del código fuente de la página abierta.
findElement(strategy, selector) Devuelve un objeto Element con un elemento en la página abierta (o devuelve null si ningún elemento coincide con strategy y selector).

Parámetros:
strategy - (cadena, selector CSS/texto del enlace/texto parcial del enlace/nombre de la etiqueta/Xpath) Estrategia de ubicación;
selector - (cadena) Selector de elementos que utiliza la estrategia de ubicación especificada.
findElements(strategy, target) Devuelve una matriz de objetos Element con múltiples elementos en la página abierta (o devuelve una matriz vacía si ningún elemento coincide con la estrategia de ubicación y el objetivo).

Parámetros:
strategy - (string, selector CSS/texto del enlace/texto parcial del enlace/nombre de etiqueta/Xpath) Estrategia de ubicación;
target - (string) Selector de elementos que utiliza la estrategia de ubicación especificada.
getCookies() Devuelve una matriz de objetos Cookie.
addCookie(cookie) Establecer cookies.

Parámetros:
cookie - (objeto Cookie) Cookie para establecer.
getScreenshot() Devuelve una cadena codificada en base64 que representa una imagen de la ventana gráfica del navegador.
setScreenSize(x,y) Establece el tamaño de la ventana gráfica del navegador.

Parámetros:
x - (cadena) Altura en píxeles;
y - (cadena) Ancho en píxeles.
setScriptTimeout(timeout) Establece el tiempo de espera para la carga del script.

Parámetros:
timeout - (entero) Valor de tiempo de espera en milisegundos.
setSessionTimeout(timeout) Establece el tiempo de espera de la sesión (carga de la página).

Parámetros:
timeout - (entero) Valor de tiempo de espera en milisegundos.
setElementWaitTimeout(timeout) Establece el tiempo de espera (implícito) de la estrategia de ubicación de elementos.

Parámetros:
timeout - (entero) Valor de tiempo de espera en milisegundos.
collectPerfEntries(mark) Recopila entradas de rendimiento para recuperarlas con el método getResult().

Parámetros:
mark - (string, opcional) Marca de instantánea de rendimiento.
getRawPerfEntries() Devuelve una matriz de objetos de entrada de rendimiento.
getResult() Devuelve un objeto Result con estadísticas de la sesión del navegador (información de error, instantáneas de rendimiento, etc.).
getError() Devuelve un objeto BrowserError con errores del navegador (o devuelve null si no hay errores del navegador).
setError(message) Establece un mensaje de error personalizado para incluir en el objeto Result.

Parámetros:
message - (string) Mensaje de error.
discardError() Descarta el error que se devolverá en el objeto Result.
getAlert() Devuelve un objeto Alert con alertas del navegador (o devuelve null si no hay alertas del navegador).
chromeOptions() Devuelve un objeto chromeOptions con opciones predefinidas del navegador Chrome.
firefoxOptions() Devuelve un objeto firefoxOptions con opciones predefinidas del navegador Firefox.
safariOptions() Devuelve un objeto safariOptions con opciones predefinidas del navegador Safari.
edgeOptions() Devuelve un objeto edgeOptions con opciones predefinidas del navegador Edge.
switchFrame(target) Cambia al marco especificado. Compatible desde la versión 7.0.4.

Parámetros:
target - (elemento del navegador o entero, opcional) Marco de destino. Para seleccionar un marco por elemento, pase el elemento. Para seleccionar un marco por índice, pase el número. Si se deja vacío, cambiará al contexto de navegación de nivel superior.

Todos los métodos de Browser pueden generar los siguientes errores:

  • BrowserError - derivado del objeto Error que se genera si falla el constructor Browser; contiene una propiedad browser adicional con un objeto Browser que generó este BrowserError.
  • WebdriverError - derivado de BrowserError; contiene las mismas propiedades que el objeto BrowserError, que indican si el error se generó en respuesta a un error en la respuesta de WebDriver.

Elemento

El objeto Element es devuelto por los métodos del objeto Browser findElement()/findElements() y no se puede construir directamente.

El objeto Element representa un elemento en la página web y proporciona métodos para interactuar con él.

Los siguientes métodos son compatibles con el objeto "Element".

Método Descripción
getAttribute(name) Devuelve una cadena de valor de atributo del atributo del elemento (o devuelve null si no se encontró el atributo especificado).

Parámetros:
name - (cadena) Nombre del atributo.
getProperty(nombre) Devuelve una cadena de valor de propiedad de la propiedad del elemento (o devuelve null si no se encontró la propiedad especificada).

Parámetros:
nombre - (cadena) Nombre de la propiedad.
getText() Devuelve una cadena de valor de texto del elemento texto.
click() Haga clic en un elemento.
clear() Borrar el contenido de un elemento editable.
sendKeys(keys) Enviar claves.

Parámetros:
keys - (cadena) Claves para enviar.

Galleta

El objeto Cookie es devuelto por el método del objeto Browser getCookies() y se pasa al método addCookie().

Si bien el objeto Cookie no tiene ningún método, puede contener las siguientes propiedades:

Propiedad Tipo Descripción
nombre cadena Nombre de la cookie.
valor cadena Valor de la cookie.
ruta cadena Ruta para la cual la cookie es válida.
El valor predeterminado es "/" si se omite al agregar una cookie.
dominio cadena Dominio en el que la cookie es visible.
El valor predeterminado es el dominio URL del documento activo del contexto de navegación actual de la sesión si se omite al agregar una cookie.
secure boolean Indica si la cookie es segura.
El valor predeterminado es "falso" si se omite al agregar una cookie.
httpOnly booleano Indica si la cookie es solo HTTP.
El valor predeterminado es "falso" si se omite al agregar una cookie.
expiry integer Tiempo de caducidad de la cookie (en segundos desde la época Unix). No se debe configurar si se omite al agregar una cookie.
sameSite string El atributo sameSite de la cookie, que controla si la cookie debe restringirse a un contexto propio o del mismo sitio.
Se puede establecer en "Lax" o "Estricto ".
El valor predeterminado es "Ninguno" si se omite al agregar una cookie.

Alerta

El objeto Alert representa una alerta de página web, lo devuelve el método Browser del objeto getAlert() y no se puede construir directamente.

El objeto Alert contiene la propiedad text con el texto de la alerta (o null si no hay alertas).

Los siguientes métodos son compatibles con el objeto "Alert".

Método Descripción
accept() Aceptar la alerta.
dismiss() Descartar la alerta.

Resultado

El objeto Resultado contiene estadísticas de sesión y es devuelto por el método getResult() del objeto Browser.

Normalmente, el objeto Resultado se codifica y se devuelve desde el script, y luego se analiza en valores de elementos dependientes mediante el preprocesamiento.

Si bien el objeto "Resultado" no tiene ningún método, puede contener las siguientes propiedades.

Propiedad Tipo Descripción
duración string Duración de la sesión desde la creación de la sesión hasta la recuperación del resultado.
error objeto Información de error.
http_status integer Estado HTTP devuelto por WebDriver (o 0 si no hay errores de WebDriver).
error_code cadena Error devuelto por WebDriver (o cadena vacía si no hay errores de WebDriver).
mensaje cadena Mensaje de error de WebDriver (o cadena vacía si no hay errores de WebDriver).
datos_rendimiento objeto Estadísticas de rendimiento.
summary objeto Resumen de rendimiento.
navegación objeto Resumen de navegación.
recurso objeto Resumen de recursos.
detalles matriz de objetos Estadísticas de rendimiento después de cada operación que podría haber resultado en la navegación.
mark string (opcional) Marca de instantánea de rendimiento especificada con el método collectPerfEntries().
navegación objeto Estadísticas de navegación.
recurso objeto Resumen de recursos para este paso.
usuario matriz de objetos Matriz de estadísticas de tipo de marca/medida.
marcas matriz de objetos Índices de instantáneas de rendimiento marcados.
nombre cadena Nombre de la marca de instantánea de rendimiento.
index integer Índice de instantánea de rendimiento en la matriz de detalles.