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óduloselenium-webdriver
(por ejemplo,ActionSequence
,Button
,By
oWebElement
). Esto se asigna al uso$driver
en tiempos de ejecución anteriores.$webDriver
es una instancia de monitoreo sintético deselenium-webdriver.WebDriver()
. Expone las principales APIWebDriver
básicas comoget()
yfindElement()
, 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 |
---|---|
| Crea una nueva secuencia de acción usando este controlador. Para obtener una lista de acciones disponibles, consulte ActionSequence. Valor de retorno: nulo |
| Agrega el encabezado Valor de retorno: nulo |
| Agrega múltiples encabezados al tiempo de ejecución. Valor de retorno: nulo |
| Devuelve un mapa de encabezados configurados actualmente. Valor de retorno: promesa |
| Devuelve un mapa de encabezados configurados actualmente. Valor de retorno: mapa |
| Devuelve una matriz de claves de encabezado configuradas actualmente. Valor de retorno: matriz |
| Devuelve un bool que indica si este encabezado existe. Valor de retorno: booleano |
| Elimina un encabezado específico del tiempo de ejecución. Valor de retorno: nulo |
| Elimina todos los encabezados del argumento del tiempo de ejecución. Valor de retorno: nulo |
| Elimina todos los encabezados del tiempo de ejecución. Valor de retorno: nulo |
| Agrega todo el nombre de host en una matriz de argumentos a su lista de denegación. Permite utilizar comodines. Valor de retorno: promesa |
| Agrega todo el nombre de host en una matriz de argumentos a su lista de 'permitidos'. Permite utilizar comodines. Valor de retorno: promesa |
| Elimina todos los nombres de host en el argumento de su lista de denegados. Valor de retorno: promesa |
| Elimina todos los nombres de host en el argumento de su lista de 'permitidos'. Valor de retorno: promesa |
| Programa un comando para ejecutar JavaScript asincrónico en el contexto del marco o ventana actualmente seleccionado. Valor de retorno: promesa |
| Programa un comando para ejecutar JavaScript en el contexto del marco o ventana actualmente seleccionado. Valor de retorno: promesa |
| 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 |
| Programe un comando para buscar múltiples elementos en la página. Valor de retorno: promesa |
| Carga una página web en un browser Sintético. Valor de retorno: promesa |
| Programa un comando para recuperar la lista actual de identificadores de ventana disponibles. Valor de retorno: promesa |
| Una promesa que se resolverá con las capacidades de la instancia. Valor de retorno: promesa |
| Programa un comando para recuperar la URL de la página actual. Valor de retorno: promesa |
| 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 |
| Una promesa para la sesión de este cliente. Valor de retorno: promesa |
| Programa un comando para recuperar el título de la página actual. Valor de retorno: promesa |
| Programa un comando para recuperar el identificador de la ventana actual. Valor de retorno: promesa |
| La interfaz de opciones para esta instancia. Puede administrar cookies, tiempos de espera y otras opciones de ventana. Valor de retorno: nulo |
| La interfaz de navegación (historial de funciones browser ) para esta instancia. Valor de retorno: nulo |
| Programa un comando para hacer que el conductor duerma durante un período de tiempo determinado. Valor de retorno: promesa |
| La interfaz del localizador de objetivos para esta instancia. Valor de retorno: nulo |
| Programa un comando para tomar una captura de pantalla. Valor de retorno: promesa |
| 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 |
| 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 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
---|---|
| Programa un comando para agregar una cookie.
Valor de retorno: promesa |
| Programa un comando para eliminar todas las cookies visibles en la página actual. Valor de retorno: promesa |
| 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 |
| 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 |
| 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 |
| Devuelve el script actual, la carga de página y los tiempos de espera implícitos. Valor de retorno: promesa |
| 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 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 |
| 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 |
| 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 |
| 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 |
| Maximiza la ventana actual. Valor de retorno: promesa |
| 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 |
---|---|
| Localiza un elemento que tiene un nombre de clase específico. El localizador devuelto equivale a buscar elementos con el selector CSS Valor de retorno: localizador |
| Localiza un elemento usando un selector CSS. Valor de retorno: localizador |
| Localiza un elemento por su ID. Valor de retorno: localizador |
| Localiza elementos de enlace cuyo texto visible coincide con la cadena dada. Valor de retorno: localizador |
| Localiza un elemento evaluando una expresión de JavaScript. Valor de retorno: localizador |
| Localiza elementos cuyo atributo de nombre tiene el valor dado. Valor de retorno: localizador |
| Localiza elementos de enlace cuyo getText visible contiene la subcadena dada. Valor de retorno: localizador |
| Localiza elementos con un nombre de etiqueta determinado. El localizador devuelto equivale a utilizar la función DOM Valor de retorno: localizador |
| 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 |
---|---|
| Hace clic en este elemento. Valor de retorno: autorreferencia |
| Programa un comando para escribir una secuencia en el elemento DOM representado por esta instancia. Valor de retorno: WebElement |
| Programa un comando para consultar la etiqueta/nombre de nodo de este elemento. Valor de retorno: WebElement |
| 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, Valor de retorno: promesa |
| Programa un comando para consultar el valor del atributo dado del elemento. Valor de retorno: promesa |
| Obtenga el Valor de retorno: promesa |
| Programa un comando para calcular el tamaño del cuadro delimitador de este elemento, en píxeles. Valor de retorno: promesa |
| Programa un comando para calcular la ubicación de este elemento, en el espacio de la página. Valor de retorno: promesa |
| 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 |
| Programa un comando para consultar si este elemento está seleccionado. Valor de retorno: promesa |
| Programa un comando para enviar el formulario que contiene este elemento (o este elemento si es un elemento Valor de retorno: promesa |
| Programa un comando para borrar el valor de este elemento. Valor de retorno: promesa |
| 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 |
---|---|
| 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 Valor de retorno: secuencia de acciones |
| 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 |
| 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 Valor de retorno: secuencia de acciones |
| Realiza una pulsación de tecla modificadora. Debe ser uno de Valor de retorno: secuencia de acciones |
| Realiza una liberación de tecla modificadora. El lanzamiento tiene como objetivo el elemento actualmente enfocado. Valor de retorno: secuencia de acciones |
| Presiona un botón del mouse. El botón del mouse no se soltará hasta que se llame a Valor de retorno: secuencia de acciones |
| Libera un botón del mouse. El comportamiento no está definido para llamar a esta función sin una llamada previa a Valor de retorno: secuencia de acciones |
| 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 |
| Ejecuta esta secuencia de acciones. Valor de retorno: promesa |
| 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 |
---|---|
| Aún se está calculando si el valor de esta promesa. Valor de retorno: booleano |
| 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 |
| 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 |
| 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 |
---|---|
| Retroceder un paso en el historial del browser. Valor de retorno: nulo |
| Avanza un paso en el historial del browser. Valor de retorno: nulo |
| Actualizar la página actual. Valor de retorno: nulo |
| Cargue una nueva página web en la ventana actual browser . Valor de retorno: nulo |
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 |
---|---|
| Crea una condición que esperará hasta que el controlador de entrada pueda cambiar al marco designado. El marco objetivo se puede especificar como:
|
| 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 |
| Crea una condición que esperará a que se deshabilite el elemento dado. Valor de retorno: condición |
| Crea una condición que esperará a que se habilite el elemento dado. Valor de retorno: condición |
| 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 |
| Crea una condición que esperará a que el elemento dado se vuelva visible. Valor de retorno: condición |
| Crea una condición que esperará a que se seleccione el elemento dado. Valor de retorno: condición |
| Crea una condición que se repetirá hasta que se encuentre un elemento con el localizador dado. Valor de retorno: condición |
| 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 |
| Crea una condición que esperará a que el texto visible del elemento dado contenga la subcadena dada. Valor de retorno: condición |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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()
.
- 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. - Utilice el método
getShadowRoot()
en el elemento que se encuentra en el paso 1 para obtener la raíz oculta. - 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 rootlet myShadowRoot = await myShadowHost.getShadowRoot();// Interact with an element inside the shadow rootlet el = await myShadowRoot.findElement($selenium.By.id('myButton'));await el.click();