• EnglishEspañol日本語한국어Português
  • Inicia sesiónComenzar ahora

Te ofrecemos esta traducción automática para facilitar la lectura.

In the event of any inconsistency between the English version and the translated version, the English versionwill take priority. Please visit this page for more information.

Crea una propuesta

Referencia browser con script Sintético (Chrome 100 y superior)

Para ejecutar el script del monitor del navegador utilizando Selenium Webdriver 4.1 API, asegúrese de que script la sintaxis del utilice las variables $selenium y $webDriver. Para acceder a las API de Selenium Webdriver 3.6.0, utilice las variables $driver y $browser como se describe en la documentación de referencia del navegador 0.5.0+.

En particular:

  • $selenium proporciona todas las exportaciones del módulo selenium-webdriver (por ejemplo, ActionSequence, Button, By o WebElement). Esto se asigna al uso $driver en tiempos de ejecución anteriores.
  • $webDriver es una instancia de monitoreo sintético de selenium-webdriver.WebDriver(). Expone las principales API WebDriver básicas como get() y findElement(), así como algunas API personalizadas de Sintético. Esto se asigna al uso $browser en tiempos de ejecución anteriores.
  • $headers proporciona la posibilidad de modificar los encabezados de las solicitudes. Esta capacidad estaba disponible en tiempos de ejecución anteriores en varios métodos $browser
  • $urlFilter proporciona la capacidad de crear listas de permisos y denegaciones para limitar las solicitudes a determinados dominios. Esta capacidad estaba disponible en tiempos de ejecución anteriores en varios métodos $browser

Si está utilizando una versión anterior del monitor, consulte la documentación de la versión 0.5.0 y 0.6.0 del monitor o la documentación de la versión 0.4.0 y anteriores del monitor.

Para obtener más información sobre las versiones de monitores y las diferencias en tiempo de ejecución, consulte Entornos de ejecución.

Importante

El flujo de control/administrador de promesas de Selenium Webdriver permitió que algunas funciones se ejecutaran en orden, sin administrar manualmente las promesas/funciones asíncronas. Esto se eliminó en Selenium Webdriver 4.0 y ya no está disponible en el tiempo de ejecución. Todas las funciones asíncronas y las promesas deben administrarse con await o con .then promesa cadena. Esto garantizará que las funciones del script se ejecuten en el orden esperado.

Para ver algunos ejemplos de uso común, consulte Introducción al script de monitorización del browser.

Funciones de nivel superior: cree su script

New Relic llama a funciones de nivel superior directamente desde su instancia $webDriver . Estos proporcionan una amplia gama de funciones que cubren muchas acciones básicas programables.

Los métodos waitForAndFindElement(locator, timeout) y waitForPendingRequests(timeout) se eliminaron del tiempo de ejecución y no están disponibles a través de $webDriver. La compatibilidad con versiones anteriores está disponible, pero se considera obsoleta y es posible que se elimine de futuros tiempos de ejecución. Utilice el siguiente fragmento de código para reemplazar su funcionalidad:

Función

Descripción

$webDriver.actions()

Crea una nueva secuencia de acción usando este controlador. Para obtener una lista de acciones disponibles, consulte ActionSequence.

Valor de retorno: nulo

$headers.add(headerKey: string, headerValue: string)

Agrega el encabezado headerKey con el valor headerValue al tiempo de ejecución.

Valor de retorno: nulo

$headers.addMultiple(headers: {key:value...})

Agrega múltiples encabezados al tiempo de ejecución.

Valor de retorno: nulo

$headers.get(headerKey: string)

Devuelve un mapa de encabezados configurados actualmente.

Valor de retorno: promesa

$headers.getAll()

Devuelve un mapa de encabezados configurados actualmente.

Valor de retorno: mapa

$headers.getKeys()

Devuelve una matriz de claves de encabezado configuradas actualmente.

Valor de retorno: matriz

$headers.has(headerKey: string)

Devuelve un bool que indica si este encabezado existe.

Valor de retorno: booleano

$headers.remove(header: string)

Elimina un encabezado específico del tiempo de ejecución.

Valor de retorno: nulo

$headers.removeMmultiple(headers: {key:value...})

Elimina todos los encabezados del argumento del tiempo de ejecución.

Valor de retorno: nulo

$headers.clear()

Elimina todos los encabezados del tiempo de ejecución.

Valor de retorno: nulo

$urlFilter.addToDenyList(hostnameArr: [string])

Agrega todo el nombre de host en una matriz de argumentos a su lista de denegación. Permite utilizar comodines.

Valor de retorno: promesa

$urlFilter.addToAllowList(hostnameArr: [string])

Agrega todo el nombre de host en una matriz de argumentos a su lista de 'permitidos'. Permite utilizar comodines.

Valor de retorno: promesa

$urlFilter.removeFromDenyList(hostnameArr: [string])

Elimina todos los nombres de host en el argumento de su lista de denegados.

Valor de retorno: promesa

$urlFilter.removeFromAllowList(hostnameArr: [string])

Elimina todos los nombres de host en el argumento de su lista de 'permitidos'.

Valor de retorno: promesa

$webDriver.executeAsyncScript(script: ?, var_args: ?)

Programa un comando para ejecutar JavaScript asincrónico en el contexto del marco o ventana actualmente seleccionado.

Valor de retorno: promesa

$webDriver.executeScript(script: ?, var_args: ?)

Programa un comando para ejecutar JavaScript en el contexto del marco o ventana actualmente seleccionado.

Valor de retorno: promesa

$webDriver.findElement(locator: $selenium.Locator)

Programe un comando para buscar un elemento en la página. Si no se encuentra, monitoreo sintético devuelve un error.

Valor de retorno: WebElementPromise

$webDriver.findElements(locator: $selenium.Locator)

Programe un comando para buscar múltiples elementos en la página.

Valor de retorno: promesa

$webDriver.get(url: string)

Carga una página web en un browser Sintético.

Valor de retorno: promesa

$webDriver.getAllWindowHandles()

Programa un comando para recuperar la lista actual de identificadores de ventana disponibles.

Valor de retorno: promesa

$webDriver.getCapabilities()

Una promesa que se resolverá con las capacidades de la instancia.

Valor de retorno: promesa

$webDriver.getCurrentUrl()

Programa un comando para recuperar la URL de la página actual.

Valor de retorno: promesa

$webDriver.getPageSource()

Programa un comando para recuperar la fuente de la página actual. La fuente de la página devuelta es una representación del DOM subyacente. No espere que tenga formato o formato de escape de la misma manera que la respuesta enviada desde el servidor web.

Valor de retorno: promesa

$webDriver.getSession()

Una promesa para la sesión de este cliente.

Valor de retorno: promesa

$webDriver.getTitle()

Programa un comando para recuperar el título de la página actual.

Valor de retorno: promesa

$webDriver.getWindowHandle()

Programa un comando para recuperar el identificador de la ventana actual.

Valor de retorno: promesa

$webDriver.manage()

La interfaz de opciones para esta instancia. Puede administrar cookies, tiempos de espera y otras opciones de ventana.

Valor de retorno: nulo

$webDriver.navigate()

La interfaz de navegación (historial de funciones browser ) para esta instancia.

Valor de retorno: nulo

$webDriver.sleep()

Programa un comando para hacer que el conductor duerma durante un período de tiempo determinado.

Valor de retorno: promesa

$webDriver.switchTo()

La interfaz del localizador de objetivos para esta instancia.

Valor de retorno: nulo

$webDriver.takeScreenshot()

Programa un comando para tomar una captura de pantalla.

Valor de retorno: promesa

$webDriver.wait(fn: $driver.Condition, timeout: number, opt_message: string)

Programa un comando para esperar a que se cumpla una condición, según lo definido por la función proporcionada.

Valor de retorno: WebElement

$browser.waitForPendingRequests(timeout: number)

Hace que el script espere a que regresen las solicitudes que se han iniciado, hasta el tiempo de espera. Útil para rastrear recursos sin bloqueo.

Valor de retorno: promesa

Lista de denegaciones: uso de comodines

Si desea agregar dominio a la lista de denegación de su instancia browser , los comodines deben coincidir con la sintaxis de la URL que se bloqueará.

Una lista de denegación general .com debe contener estas funciones:

Función

Acción de bloqueo

$urlFilter.addToDenyList(['*.com']);

a.com

$urlFilter.addToDenyList([*.*.com']);

a.b.com

$urlFilter.addToDenyList([*.*.*.com']);

a.b.c.com

$urlFilter.addToDenyList([www.*.com']);

www.a.com

$urlFilter.addToDenyList([www.*.*.com']);

www.a.b.com

$urlFilter.addToDenyList(['www.*.*.*.com']);

www.a.b.c.com

Opciones: administrar la instancia browser

Estas funciones administran opciones para la instancia de su browser , como cookies, tiempos de espera y tamaño de ventana. Accede a estas opciones a través de la función $webDriver.manage() .

Función

Descripción

$webDriver.manage().addCookie(spec: object)

Programa un comando para agregar una cookie.

spec es un objeto de registro que describe una cookie browser . Para obtener más información, consulte la documentación de Selenium.

Valor de retorno: promesa

$webDriver.manage().deleteAllCookies()

Programa un comando para eliminar todas las cookies visibles en la página actual.

Valor de retorno: promesa

$webDriver.manage().deleteCookie(name: string)

Programa un comando para eliminar la cookie con el nombre de pila. Este comando no funciona si no hay ninguna cookie con el nombre de pila visible en la página actual.

Valor de retorno: promesa

$webDriver.manage().getCookie(name: string)

Programa un comando para recuperar la cookie con el nombre de pila. Devuelve nulo si no existe dicha cookie. La cookie se devolverá como un objeto JSON como lo describe el protocolo de conexión Webdriver .

Valor de retorno: promesa

$webDriver.manage().getCookies()

Programa un comando para recuperar todas las cookies visibles en la página actual. New Relic Syntheticcs devuelve cada cookie como un objeto JSON como lo describe el protocolo de conexión Webdriver .

Valor de retorno: promesa

$webDriver.manage().getTimeouts()

Devuelve el script actual, la carga de página y los tiempos de espera implícitos.

Valor de retorno: promesa

$webDriver.manage().setTimeouts({implicit: numberMS})

Especifica la cantidad de tiempo que el controlador debe esperar cuando busca un elemento si no está presente inmediatamente. Establecer el tiempo de espera en 0 deshabilita la espera implícita.

Tenga cuidado al aumentar el tiempo de espera, ya que aumentará el tiempo de ejecución de la prueba, especialmente con estrategias de ubicación más lentas como XPath. El valor predeterminado es 10 segundos.

Valor de retorno: promesa

$webDriver.manage().setTimeouts({pageLoad: numberMS})

Establece la cantidad de tiempo que se debe esperar a que se complete la carga de una página antes de devolver un error. Si el tiempo de espera es negativo, la carga de la página puede durar hasta 180 segundos. El valor predeterminado es 60 segundos.

Valor de retorno: promesa

$webDriver.manage().setTimeouts({script: numberMS})

Establece la cantidad de tiempo que se debe esperar, en milisegundos, para que un script asincrónico finalice la ejecución antes de devolver un error. El valor predeterminado es 30 segundos.

Valor de retorno: promesa

$webDriver.manage().window().getRect()

Recupera la posición actual de la ventana (como xey), en relación con la esquina superior izquierda de la pantalla y el tamaño de la ventana (como ancho y alto).

Valor de retorno: promesa

$webDriver.manage().window().maximize()

Maximiza la ventana actual.

Valor de retorno: promesa

$webDriver.manage().window().setRect({x: number|undefined, y: number|undefined, width: number|undefined, height: number|undefined})

Establezca la posición actual de la ventana (como xey), en relación con la esquina superior izquierda de la pantalla y el tamaño de la ventana (como ancho y alto).

Valor de retorno: promesa

Localizador: Buscar elemento de página

Localizador es una colección de funciones de fábrica para crear locator instancia. El localizador encuentra elementos DOM, que se pueden pasar a funciones como $webDriver.findElement. Llámelos a través de $selenium.By.

Función

Descripción

$selenium.By.className(className: string)

Localiza un elemento que tiene un nombre de clase específico. El localizador devuelto equivale a buscar elementos con el selector CSS .class.

Valor de retorno: localizador

$selenium.By.css(cssName: string)

Localiza un elemento usando un selector CSS.

Valor de retorno: localizador

$selenium.By.id(id: string)

Localiza un elemento por su ID.

Valor de retorno: localizador

$selenium.By.linkText(linkText: string)

Localiza elementos de enlace cuyo texto visible coincide con la cadena dada.

Valor de retorno: localizador

$selenium.By.js(js: string)

Localiza un elemento evaluando una expresión de JavaScript.

Valor de retorno: localizador

$selenium.By.name(name: string)

Localiza elementos cuyo atributo de nombre tiene el valor dado.

Valor de retorno: localizador

$selenium.By.partialLinkText(partialLinkText: string)

Localiza elementos de enlace cuyo getText visible contiene la subcadena dada.

Valor de retorno: localizador

$selenium.By.tagName(tagName: string)

Localiza elementos con un nombre de etiqueta determinado. El localizador devuelto equivale a utilizar la función DOM getElementsByTagName .

Valor de retorno: localizador

$selenium.By.xpath(xpath: string)

Localiza elementos que coinciden con un selector XPath.

Valor de retorno: localizador

WebElement: Interactuar con el elemento de página

Cuando una función como $webDriver.findElement devuelve una referencia de WebElement, estas funciones se pueden usar para interactuar con ese elemento. Por ejemplo, puede hacer clic en botones, enviar texto para formar entradas y obtener atributos de elementos para probar.

Función

Descripción

click()

Hace clic en este elemento.

Valor de retorno: autorreferencia

sendKeys(var_args: ?)

Programa un comando para escribir una secuencia en el elemento DOM representado por esta instancia.

Valor de retorno: WebElement

getTagName()

Programa un comando para consultar la etiqueta/nombre de nodo de este elemento.

Valor de retorno: WebElement

getCssValue(name: string)

Programa un comando para consultar el estilo de calcular del elemento representado por esta instancia. Si el elemento hereda el estilo nombrado de su padre, se consultará al padre por su valor. Siempre que sea posible, los valores de color se convertirán a su representación hexadecimal (por ejemplo, #00ff00 en lugar de rgb(0, 255, 0)).

Valor de retorno: promesa

getAttribute(name: string)

Programa un comando para consultar el valor del atributo dado del elemento.

Valor de retorno: promesa

getText(name: string)

Obtenga el innerText visible (no oculto por CSS) de este elemento, incluidos los subelementos, sin ningún espacio en blanco inicial o final.

Valor de retorno: promesa

getSize()

Programa un comando para calcular el tamaño del cuadro delimitador de este elemento, en píxeles.

Valor de retorno: promesa

getLocation()

Programa un comando para calcular la ubicación de este elemento, en el espacio de la página.

Valor de retorno: promesa

isEnabled()

Programa un comando para consultar si el elemento DOM representado por esta instancia está habilitado, según lo dicta el atributo deshabilitado.

Valor de retorno: promesa

isSelected()

Programa un comando para consultar si este elemento está seleccionado.

Valor de retorno: promesa

submit()

Programa un comando para enviar el formulario que contiene este elemento (o este elemento si es un elemento FORM ). Este comando no es operativo si el elemento no está contenido en un formulario.

Valor de retorno: promesa

clear()

Programa un comando para borrar el valor de este elemento.

Valor de retorno: promesa

isDisplayed()

Programa un comando para probar si este elemento se muestra actualmente.

Valor de retorno: promesa

ActionSequence: vincular múltiples acciones

Las secuencias de acción pueden crear una interacción compleja del usuario con su sitio web.

  • Para crear una nueva secuencia de acciones, utilice $webDriver.actions().
  • Para vincular varias acciones en una secuencia, incluya perform() después de cada una. Esto ejecuta y luego finaliza secuencias individuales, incluidas secuencias de acción única.

La siguiente tabla contiene una lista de acciones disponibles. Para obtener más información, consulte la documentación Webdriver ActionSequence en GitHub.

Función

Descripción

click(opt_elementOrButton: ?, opt_button: ?)

Hace clic en un botón del mouse. Si se proporciona un elemento, el mouse primero se moverá al centro de ese elemento. Esto es equivalente a WebElement.click().

Valor de retorno: secuencia de acciones

doubleClick(opt_elementOrButton: ?, opt_button: ?)

Hace doble clic en un botón del mouse. Si se proporciona un elemento, el mouse primero se moverá al centro de ese elemento.

Valor de retorno: secuencia de acciones

dragAndDrop(element: ?, location: ?)

Función cómoda para realizar una maniobra de arrastrar y soltar. El elemento de destino se puede mover a la ubicación de otro elemento o mediante un desplazamiento (en píxeles). La ubicación es un objeto con dos propiedades x y y: {x: x_offset, y: y_offset}.

Valor de retorno: secuencia de acciones

keyDown(key: ?)

Realiza una pulsación de tecla modificadora. Debe ser uno de ALT, CONTROL, SHIFT, COMMAND o META. La tecla modificadora no se suelta hasta que se llama a keyUp() o sendKeys() . La pulsación de la tecla será dirigida al elemento actualmente enfocado.

Valor de retorno: secuencia de acciones

keyUp(key: ?)

Realiza una liberación de tecla modificadora. El lanzamiento tiene como objetivo el elemento actualmente enfocado.

Valor de retorno: secuencia de acciones

press(opt_elementOrButton: ?, opt_button: ?)

Presiona un botón del mouse. El botón del mouse no se soltará hasta que se llame a release , independientemente de si esa llamada se realiza en esta secuencia u otra. El comportamiento del evento fuera de servicio (como llamar a press() o click() cuando el botón ya está presionado) no está definido.

Valor de retorno: secuencia de acciones

release(opt_elementOrButton: ?, opt_button: ?)

Libera un botón del mouse. El comportamiento no está definido para llamar a esta función sin una llamada previa a press().

Valor de retorno: secuencia de acciones

move(location: ?, offset: ?)

Mueve el ratón. La ubicación a la que moverse puede especificarse en términos de la ubicación actual del mouse, un desplazamiento relativo a la esquina superior izquierda de un elemento o un elemento (en cuyo caso se usa el centro del elemento).

Valor de retorno: secuencia de acciones

perform()

Ejecuta esta secuencia de acciones.

Valor de retorno: promesa

sendKeys(args: ?)

Simula escribir varias teclas. Cada tecla modificadora que se encuentre en la secuencia no se liberará hasta que se vuelva a encontrar. Todo evento clave tendrá como objetivo el elemento actualmente enfocado. Para obtener una lista completa de claves no alfanuméricas admitidas, consulte la documentación de claves de enumeración Webdriver en GitHub.

Valor de retorno: secuencia de acciones

Promesas: vincular acciones en secuencias

También puede ejecutar funciones directamente sobre las promesas. monitoreo sintético es un entorno nativo de Node.js y utiliza promesas estándar de Node.js.

Estas funciones evalúan el estado de las promesas, las cancelan y más. En particular, puedes crear secuencias de acciones con la función then() y sus hermanas, finally() y catch(). Para obtener más información, consulte Secuencia de acciones.

Sugerencia

Además de soportar la promesa cadena usando .then sintaxis, este tiempo de ejecución también admite la sintaxis async-await.

Función

Descripción

isPending()

Aún se está calculando si el valor de esta promesa.

Valor de retorno: booleano

then(opt_callback: fn(T: ?), opt_errback: fn())

Registra oyentes para cuando se resuelva esta instancia. Esta es la función básica utilizada para vincular acciones sincrónicas en su script.

Valor de retorno: promesa

finally(callback: fn())

Registra un oyente para invocarlo cuando se resuelva esta promesa, independientemente de si el valor de la promesa se calculó correctamente.

Valor de retorno: promesa

catch(callback: fn())

Registra un oyente para cuando se rechace esta promesa.

Valor de retorno: promesa

Navegar: moverse por el historial browser

La función $webDriver.navigate() expone una serie de funciones que le permiten avanzar y retroceder en el historial de su browser , actualizar su página y navegar a páginas nuevas.

Función

Descripción

Condiciones: pausar y esperar condiciones.

Sugerencia

Puede obtener más información sobre las esperas en Selenium en su documentación oficial.

Usado con $webDriver.wait, until pausa la ejecución del script hasta que se cumpla la condición. Para obtener más información, consulte la documentación Webdriver until de Selenium.

Las siguientes son funciones disponibles para $selenium.until.Condition:

Función

Descripción

ableToSwitchToFrame(frame: ?)

Crea una condición que esperará hasta que el controlador de entrada pueda cambiar al marco designado. El marco objetivo se puede especificar como:

  • Un índice numérico en window.frames para el fotograma actual

  • Un webdriver.WebElement, que debe hacer referencia a un elemento FRAME o IFRAME en la página actual

  • Un localizador que se puede utilizar para localizar primero un FRAME o IFRAME en la página actual antes de intentar cambiar a ella.

    Una vez resuelta con éxito esta condición, el conductor quedará concentrado en el nuevo marco.

    Valor de retorno: condición

alertIsPresent()

Crea una condición que espera a que se abra una alerta. En caso de éxito, la promesa devuelta se cumplirá con el identificador de la alerta abierta.

Valor de retorno: condición

elementIsDisabled(element: $selenium.WebElement)

Crea una condición que esperará a que se deshabilite el elemento dado.

Valor de retorno: condición

elementIsEnabled(element: $selenium.WebElement)

Crea una condición que esperará a que se habilite el elemento dado.

Valor de retorno: condición

elementIsNotVisible(element: $selenium.WebElement)

Crea una condición que esperará a que el elemento dado esté en el DOM, pero no sea visible para el usuario.

Valor de retorno: condición

elementIsVisible(element: $selenium.WebElement)

Crea una condición que esperará a que el elemento dado se vuelva visible.

Valor de retorno: condición

elementIsSelected(element: $selenium.WebElement)

Crea una condición que esperará a que se seleccione el elemento dado.

Valor de retorno: condición

elementLocated(element: $selenium.Locator)

Crea una condición que se repetirá hasta que se encuentre un elemento con el localizador dado.

Valor de retorno: condición

elementsLocated(element: $selenium.Locator)

Crea una condición que se repetirá hasta que se encuentre al menos un elemento con el localizador dado.

Valor de retorno: condición

n

elementTextContains(element: $selenium.WebElement, substr: string)

Crea una condición que esperará a que el texto visible del elemento dado contenga la subcadena dada.

Valor de retorno: condición

elementTextIs(element: $selenium.WebElement, text: string)

Distingue mayúsculas y minúsculas. Crea una condición que esperará a que el texto visible del elemento dado coincida exactamente con el texto dado.

Valor de retorno: condición

n

elementTextMatches(element: $selenium.WebElement, regex: string)

Crea una condición que esperará a que el texto visible del elemento dado coincida con una expresión regular.

Valor de retorno: condición

stalenessOf(element: $selenium.WebElement)

Crea una condición que esperará a que el elemento dado quede obsoleto. Un elemento se considera obsoleto una vez que se elimina del DOM o se carga una nueva página.

Valor de retorno: condición

titleContains(substr: string)

Crea una condición que esperará a que el título de la página actual contenga la subcadena dada.

Valor de retorno: condición

titleIs(title: string)

Crea una condición que esperará a que el título de la página actual coincida con el valor dado.

Valor de retorno: condición

titleMatches(regex: string)

Crea una condición que esperará a que el título de la página actual coincida con la expresión regular dada.

Valor de retorno: condición

Shadow DOM: encontrar elementos

El tiempo de ejecución ahora admite el acceso a elementos DOM ocultos mediante el nuevo método Selenium Webdriver getShadowRoot().

  1. Utilice findElement o una función similar de nivel superior para encontrar el host oculto. Este es el elemento en el que está montada la raíz de sombra.
  2. Utilice el método getShadowRoot() en el elemento que se encuentra en el paso 1 para obtener la raíz oculta.
  3. Usando la raíz de la sombra, ahora puede usar findElement o funciones similares para buscar elementos dentro de la raíz de la sombra. Si se utilizan varios niveles de Shadow DOM, estos pasos deberán repetirse hasta que acceda al objeto raíz de Shadow que contiene el elemento con el que necesita interactuar.

Sugerencia

Chrome no admite el uso del localizador XPath dentro de un objeto raíz de sombra. Utilice una opción de localizador diferente para buscar elementos dentro de un objeto raíz de sombra.

Ejemplo:

// Find the shadow host
let myShadowHost = await $webDriver.findElement($selenium.By.id('exampleShadowHost'));
// Get the shadow root
let myShadowRoot = await myShadowHost.getShadowRoot();
// Interact with an element inside the shadow root
let el = await myShadowRoot.findElement($selenium.By.id('myButton'));
await el.click();
Copyright © 2024 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.