[comment]: # translation:outdated

[comment]: # (tags: browser)

[comment]: # ({b2b7cc8c-5b27f125})
# 2 Objectes JavaScript d'elements del navegador

[comment]: # ({/b2b7cc8c-5b27f125})

[comment]: # ({78a26b1c-8dceeea0})
#### Visió general

Aquesta secció descriu els afegits de Zabbix al llenguatge JavaScript implementat amb Duktape per emprar-les a l'script [element navegador](/manual/config/items/itemtypes/browser).
Aquestes addicions complementen els objectes JavaScript descrits a la pàgina [Objectes JavaScript addicionals](/manual/config/items/preprocessing/javascript/javascript_objects).

[comment]: # ({/78a26b1c-8dceeea0})

[comment]: # ({703c4e04-63b1c0c6})
#### Navegador

L'objecte `Navegador` gestiona les sessions del WebDriver, inicialitzant una sessió en crear-la i finalitzar-la quan es destrueix.
Un únic script pot suportar fins a quatre objectes `Navegador`.

Per construir un objecte `Navegador`, empreu la sintaxi `Nou navegador (opcions)`.
El paràmetre `opcions` (*objecte JSON*) especifica les opcions del navegador, normalment el resultat del mètode d'opcions de WebDriver (per exemple, `Browser.chromeOptions()`).

Els mètodes següents són compatibles amb l'objecte `Navegador`.

|Mètode|Descripció|
|---|-------|
|`navigate(url)`|Navega fins a l'URL especificat.<br><br>Paràmetres:<br>`url` - (cadena) URL per navegar.|
|`getUrl()`|Retorna una cadena de l'URL de la pàgina oberta.|
|`getPageSource()`|Retorna una cadena de la font de la pàgina oberta.|
|`findElement(strategy, selector)`|Retorna un objecte [`Element`](#element) amb un element a la pàgina oberta (o retorna `null` si cap element coincideix amb `strategy` i `selector`).<br><br>Paràmetres:<br>`strategy` - (cadena, selector CSS/text de l'enllaç/text de l'enllaç parcial/nom de l'etiqueta/Xpath) Estratègia d'ubicació;<br>`selector` - (cadena) Selector d'elements que empra la ubicació especificada estratègia.|
|`findElements(strategy, target)`|Retorna una matriu d'objectes [`Element`](#element) amb diversos elements a la pàgina oberta (o retorna una matriu buida si cap element coincideix amb l'estratègia d'ubicació i l'objectiu).<br> <br>Paràmetres:<br>`strategy` - (cadena, selector CSS/text de l'enllaç/text de l'enllaç parcial/nom de l'etiqueta/Xpath) Estratègia d'ubicació;<br>`target` - (cadena) Selector d'elements que empra l'estratègia d'ubicació especificada.|
|`getCookies()`|Retorna una matriu d'objectes [`Cookie`](#cookie).|
|`addCookie(cookie)`|Defineix galetes.<br><br>Paràmetres:<br>`cookie` - ([`Cookie`](#cookie) object) Galeta per configurar.|
|`getScreenshot()`|Retorna una cadena codificada en Base64 representant una imatge de la finestra gràfica del navegador.|
|`setScreenSize(x,y)`|Defineix la mida de la finestra gràfica del navegador.<br><br>Paràmetres:<br>`x` - (cadena) Alçada en píxels;<br>`y` - (cadena) Amplada en píxels.|
|`setScriptTimeout(timeout)`|Defineix el temps d'espera de càrrega de l'script.<br><br>Paràmetres:<br>`timeout` - (enter) Valor del temps d'espera en mil·lisegons.|
|`setSessionTimeout(timeout)`|Defineix el temps d'espera de la sessió en (carregar la pàgina).<br><br>Paràmetres:<br>`timeout` - (enter) Valor del temps d'espera en mil·lisegons.|
|`setElementWaitTimeout(timeout)`|Defineix el temps d'espera de l'estratègia d'ubicació de l'element (implícit).<br><br>Paràmetres:<br>`timeout` - (enter) Valor del temps d'espera en mil·lisegons.| 
|`collectPerfEntries(mark)`|Recull les entrades de rendiment per recuperar-les amb el mètode `getResult()`.<br><br>Paràmetres:<br>`mark` - (cadena, opcional) marca d'instantània de rendiment.|
|`getRawPerfEntries()`|Retorna una matriu d'objectes d'entrada de rendiment.|
|`getResult()`|Retorna un objecte [`Result`](#result) amb estadístiques de sessió del navegador (informació d'errors, instantànies de rendiment, etc.).|
|`getError()`|Retorna un objecte `BrowserError` amb errors del navegador (o retorna `null` si no hi ha errors del navegador).|
|`setError(message)`|Defineix un missatge d'error personalitzat que s'inclou a l'objecte [`Result`](#result).<br><br>Paràmetres:<br>`message` - (cadena) Missatge d'error. |
|`discardError()`|Descarta l'error que es retornarà a l'objecte [`Result`](#result).|
|`getAlert()`|Retorna un objecte [`Alert`](#alert) amb alertes del navegador (o retorna `null` si no hi ha alertes del navegador).|
|`chromeOptions()`|Retorna un objecte `chromeOptions` amb opcions predefinides del navegador Chrome.|
|`firefoxOptions()`|Retorna un objecte `firefoxOptions` amb opcions predefinides del navegador Firefox.|
|`safariOptions()`|Retorna un objecte `safariOptions` amb opcions predefinides del navegador Safari.|
|`edgeOptions()`|Retorna un objecte `edgeOptions` amb les opcions del navegador Edge predefinides.|
|`switchFrame(target)`| Canvia al marc especificat.<br><br>Paràmetres:<br>`target` - (element del navegador o enter, opcional) Marc objectiu. Per triar un fotograma per element, passeu l'element. Per triar un fotograma per índex, passeu el nombre. Si es deixa buit, canviarà al context de navegació de nivell superior. |

Tots els mètodes del navegador poden generar els errors següents:

- `BrowserError` - derivat de l'objecte `Error` que es llança si el constructor `Browser` falla;
    conté una propietat addicional del `navegador` amb un objecte `Navegador` que ha llançat aquest `Error del navegador`.
- `WebdriverError` - derivat de `BrowserError`;
    conté les mateixes propietats que l'objecte `BrowserError`, que indiquen si l'error es va generar com a resposta a un error a la resposta del WebDriver.

[comment]: # ({/703c4e04-63b1c0c6})

[comment]: # ({604d89e0-d4cb4fbc})
#### Element

L'objecte `Element` és retornat pels mètodes [`Navegador`](#browser) `findElement()`/`findElements()` i no es pot construir directament.

L'objecte `Element` representa un element de la pàgina web i proporciona mètodes per interactuar amb ell.

Els mètodes següents són compatibles amb l'objecte `Element`.

|Mètode|Descripció|
|--|---------|
|`getAttribute(name)`|Retorna una cadena de valor d'atribut de l'atribut d'element (o retorna `null` si no s'ha trobat l'atribut especificat).<br><br>Paràmetres:<br>`name` - (cadena) Nom de l'atribut.|
|`getProperty(name)`|Retorna una cadena de valor de propietat de la propietat de l'element (o retorna `null` si no s'ha trobat la propietat especificada).<br><br>Paràmetres:<br>`name` - (cadena) Nom de la propietat.|
|`getText()`|Retorna una cadena de valor de text de l'element text.|
|`click()`|Fa clic a un element.|
|`clear()`|Esborra el contingut d'un element editable.|
|`sendKeys(keys)`|Envia claus.<br><br>Paràmetres:<br>`keys` - (cadena) Tecles per enviar.|

[comment]: # ({/604d89e0-d4cb4fbc})

[comment]: # ({df4e240e-8f51d1aa})
#### Galeta

L'objecte `Cookie` és retornat pel mètode [`Navegador`](#browser) `getCookies()` i passa al mètode `addCookie()`.

Tot i que l'objecte `Cookie` no té cap mètode, pot contenir les propietats següents:

|Propietat|Tipus|Descripció|
|--|--|------|
|nom|string|Nom de la galeta.|
|valor|string|Valor de la galeta.|
|camí|string|Camí per al qual la galeta és vàlida.<br>El valor per defecte és `"/"` si s'omet en afegir una galeta.|
|domini|string|Domini al qual és visible la galeta.<br>Per defecte és el domini de l'URL del document actiu del context de navegació actual de la sessió si s'omet en afegir una galeta.|
|secure|boolean|Indica si la galeta és segura.<br>El valor per defecte és `false` si s'omet en afegir una galeta.|
|httpOnly|boolean|Indica si la galeta només és HTTP.<br>El valor per defecte és `false` si s'omet en afegir una galeta.|
|expiry|integer|Temps d'expiració de la galeta (en segons des de l'època Unix). No s'ha d'establir si s'omet en afegir una galeta.|
|sameSite|string|L'atribut `sameSite` de la galeta, que controla si la galeta s'ha de restringir a un context propi o del mateix lloc.<br>Es pot establir com a `"Lax"` o `"Estricte "`.<br>El valor predeterminat és `"Cap"` si s'omet en afegir una galeta.|

[comment]: # ({/df4e240e-8f51d1aa})

[comment]: # ({a5a93a3d-a8d4ccbd})
#### Alerta

L'objecte `Alert` representa una alerta de pàgina web, és retornat pel mètode [`Navegador`](#browser) object `getAlert()` i no es pot construir directament.

L'objecte `Alert` conté la propietat `text` amb el text de l'alerta (o `null` si no hi ha alertes).

Els mètodes següents són compatibles amb l'objecte `Alert`.

|Mètode|Descripció|
|--|---------|
|`accept()`|Accepta l'alerta.|
|`dismiss()`|Descarta l'alerta.|

[comment]: # ({/a5a93a3d-a8d4ccbd})

[comment]: # ({aaeb76e3-54b41590})
#### Resultat

L'objecte `Result` conté estadístiques de sessió i és retornat pel mètode [`Navegador`](#browser) `getResult()`.

Normalment, l'objecte `Result` es restringeix i es retorna des de l'script, i després s'analitza en valors d'element dependents mitjançant el preprocessament.

Tot i que l'objecte `Result` no té cap mètode, pot contindre les propietats següents.

|Propietat|<|<|Tipus|Descripció|
|-|-|-|------|---------------------|
|duration|<|<|string|Durada de la sessió des de la creació de la sessió fins a la recuperació del resultat.|
|error|<|<|object|Informació d'error.|
|<|http_status|<|integer|Estat HTTP retornat pel WebDriver (o 0 si no hi ha errors de WebDriver).|
|^|error_code|<|string|Error retornat pel WebDriver (o cadena buida si no hi ha errors de WebDriver).|
|^|missatge|<|string|Missatge d'error de WebDriver (o cadena buida si no hi ha errors de WebDriver).|
|dades_de_rendiment|<|<|object|Estadístiques de rendiment.|
|<|resum|<|object|Resum del rendiment.|
|^|<|navegació|object|Resum de navegació.|
|^|^|recurs|object|Resum del recurs.|
|<|detalls|<|array of objects|Estadístiques de rendiment després de cada operació que podria haver donat lloc a la navegació.|
|^|<|mark|string|*(opcional)* Marca d'instantània de rendiment especificada amb el mètode [`collectPerfEntries()`](#browser).|
|^|^|navegació|object|Estadístiques de navegació.|
|^|^|recurs|object|Resum del recurs per a aquest pas.|
|^|^|usuari|array of objects|Matriu d'estadístiques de tipus de marca/mesura.|
|<|marks|<|array of objects|Índexs d'instantània de rendiment marcats.|
|^|<|nom|string|Nom de la marca de la instantània de rendiment.|
|^|^|index|integer|Índex d'instantània de rendiment a la matriu de detalls.|

[comment]: # ({/aaeb76e3-54b41590})
