Els elements del navegador permeten supervisar llocs web complexos i aplicacions web mitjançant un navegador.
::: nota important Actualment, el suport dels elements del navegador és experimental. :::
Els elements del navegador recullen dades executant un codi JavaScript definit per l'usuari i recuperant dades mitjançant HTTP/HTTPS. Aquest element pot simular accions relacionades amb el navegador com ara fer clic, introduir text, navegar per pàgines web i altres interaccions de l'usuari amb llocs web o aplicacions web.
A més de l'script, es pot especificar una llista opcional de paràmetres (parells de nom i valor) i temps d'espera.
::: nota important L'element implementa parcialment l'estàndard W3C WebDriver amb Selenium Server o amb un WebDriver normal (per exemple, ChromeDriver) com a punt final de prova web. Perquè l'element funcioni, configureu el punt final al paràmetre WebDriverURL
del fitxer de configuració servidor/proxy de Zabbix. :::
Els elements del navegador són executats i processats pel servidor Zabbix o els enquestadors del navegador proxy. Si cal, podeu ajustar el nombre d'instàncies prèviament bifurcades dels enquestadors d'elements del navegador al [servidor] Zabbix (/manual/appendix/config/zabbix_server#startbrowserpollers)/proxy paràmetre StartBrowserPollers
del fitxer de configuració.
Per monitorar llocs web i aplicacions web complexes, la plantilla Website by Browser està disponible com a out -of-the-box template.
::: nota important Si utilitzeu ChromeDriver com a punt final de prova web, consulteu Consideracions de seguretat. :::
Al camp Tipus de formulari de configuració de l'element, seleccioneu Navegador i, a continuació, ompliu els camps obligatoris.
Tots els camps d'entrada obligatoris estan marcats amb un asterisc vermell.
Els camps que requereixen informació específica per als elements del navegador són:
Camp | Descripció |
---|---|
Clau | Introduïu una clau única que s'emprarà per identificar l'element. |
Paràmetres | Especifiqueu les variables que s'han de passar a l'script com a parells d'atribut i valor. S'admeten macros d'usuari. Per veure quines macros integrades s'admeten, cerqueu "Element de tipus navegador" a la taula macro compatible. |
Script | Introduïu el codi JavaScript al bloc que apareix en fer clic al camp de paràmetres (o al botó de visualització/edició al costat). Aquest codi ha de proporcionar la lògica per retornar el valor de mètrica. El codi té accés a tots els paràmetres, tots els objectes JavaScript addicionals i [objectes JavaScript d'element del navegador] (/manual/config/items/preprocessing/javascript/browser_item_javascript_objects) afegit per Zabbix. Vegeu també: JavaScript Guide. |
Temps d'espera | Temps d'espera d'execució de JavaScript (entre 1 i 600 segons; si el supera es retornarà un error). Tingueu en compte que, depenent de l'script, el temps d'espera pot tardar més a activar-se. Per obtindre més informació sobre el * Paràmetre Timeout*, veieu atributs generals d'element. |
El següent script:
Al camp Script, introduïu:
var browser = new Browser(Browser.chromeOptions());
try {
browser.navigate("http://example.com");
browser.collectPerfEntries();
}
finally {
return JSON.stringify(browser.getResult());
}
El següent script:
Al camp Script, introduïu:
var browser, result;
browser = new Browser(Browser.chromeOptions());
try {
browser.navigate("http://example.com/zabbix/index.php");
browser.collectPerfEntries("open page");
var el = browser.findElement("xpath", "//input[@id='name']");
if (el === null) {
throw Error("cannot find name input field");
}
el.sendKeys("Admin");
el = browser.findElement("xpath", "//input[@id='password']");
if (el === null) {
throw Error("cannot find password input field");
}
el.sendKeys("zabbix");
el = browser.findElement("xpath", "//button[@id='enter']");
if (el === null) {
throw Error("cannot find login button");
}
el.click();
browser.collectPerfEntries("login");
el = browser.findElement("link text", "Sign out");
if (el === null) {
throw Error("cannot find logout button");
}
el.click();
browser.collectPerfEntries("logout");
result = browser.getResult();
}
catch (err) {
if (!(err instanceof BrowserError)) {
browser.setError(err.message);
}
result = browser.getResult();
result.error.screenshot = browser.getScreenshot();
}
finally {
return JSON.stringify(result);
}
El següent script:
Tingueu en compte que per configurar instàncies de WebDriver, us caldran scripts de prova o escenaris addicionals per interactuar amb els llocs web o l'aplicació web que sou provant.
Al camp Script, poseu-hi:
var browser = new Browser({
"capabilities":{
"firstMatch":[
{
"browserName":"chrome",
"pageLoadStrategy":"normal",
"goog:chromeOptions":{
"args":[
"--headless=new"
]
}
},
{
"browserName":"firefox",
"pageLoadStrategy":"normal",
"moz:firefoxOptions":{
"args":[
"--headless"
]
}
},
{
"browserName":"MicrosoftEdge",
"pageLoadStrategy":"normal",
"ms:edgeOptions":{
"args":[
"--headless=new"
]
}
},
{
"browserName":"safari",
"pageLoadStrategy":"normal"
}
]
}
});