• 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

Solucionar errores de actualización del tiempo de ejecución

Browser con script: los intentos de interactuar con elementos fallan

Al validar un monitor creado en un tiempo de ejecución anterior con el tiempo de ejecución de Chrome 100 (o más reciente), findElement y otros métodos para buscar e interactuar con elementos en la página pueden fallar debido a diferencias en el manejo de promesas. Si el monitor pasa en un tiempo de ejecución legacy , falla en el nuevo tiempo de ejecución y el elemento está presente en la captura de pantalla, es posible que deba mejorar la lógica de manejo de promesas.

El flujo de control/administrador de promesas de Selenium Webdriver permitió que algunas funciones se ejecutaran en orden en tiempos de ejecución legacy , sin administrar promesas. Esta capacidad 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.

Por ejemplo, el administrador de promesas/flujo de control podría permitir que este script parcial se complete exitosamente, aunque $browser.get devuelva una promesa y la promesa no se esté manejando correctamente:

$browser.get('http://example.com');
$browser.findElement($driver.By.css('h1'));

En el tiempo de ejecución de Chrome 100 (o posterior), cualquier método que devuelva una promesa debe usar await o .then sintaxis para secuenciar correctamente los pasos. Se recomienda usar await debido a una sintaxis más limpia y un uso más fácil, pero .then La cadena de promesa todavía es compatible.

await $browser.get('http://example.com');
let el = await $browser.findElement($driver.By.css('h1'));

API con secuencia de comandos: diferencias entre request y got

Los tiempos de ejecución API con secuencias de comandos de Node.js 10 y anteriores usaban el módulo request Node.js para proporcionar un objeto $http que podría usarse para probar las API.

Los tiempos de ejecución de API con secuencias de comandos de Node.js 16 y más recientes usan got en lugar de request. El módulo request quedó obsoleto en 2020 y ya no se incluirá en la nueva API ni en los tiempos de ejecución basados browser . El objeto $http proporciona una experiencia personalizada similar a la requestmientras funciona con got para brindar compatibilidad con versiones anteriores para casos de uso básicos y al mismo tiempo evitar el uso de un módulo obsoleto. No todos los casos de uso avanzado de request son ni serán compatibles. Hay disponibles ejemplosscript y una guía de conversión.

Sugerencia

La experiencia similar a requestproporcionada por el objeto $http también se devolverá para cualquier cliente que intente utilizar request directamente en Node.js 16 y tiempos de ejecución de API con secuencias de comandos más recientes.

API con secuencia de comandos: errores inesperados del token JSON.parse

Intentar utilizar la función JSON.parse mientras se interactúa con el cuerpo de la respuesta puede producir errores de token inesperados en el monitor de API con secuencia de comandos que utiliza Node.js 16 y el tiempo de ejecución más reciente. Si el encabezado de respuesta del tipo de contenido es application/json, el cuerpo de la respuesta que devuelve el objeto $http se analizará en formato JSON. Las llamadas adicionales que intenten utilizar JSON.parse para analizar el cuerpo de la respuesta fallarán con este error porque el cuerpo de la respuesta ya se ha analizado.

Browser con secuencias de comandos: advertencias de obsolescencia ($browser / $driver)

Las advertencias de obsolescencia para $browser y $driver se eliminaron a partir de la versión 2.0.29 o más reciente del tiempo de ejecución del browser . Ya no deberías recibir estas advertencias cuando utilices la ubicación pública. Actualice la imagen del tiempo de ejecución de su browser de nodo si recibe estas advertencias cuando utiliza la ubicación privada.

Browser con script: waitForAndFindElement y waitForPendingRequests

Los métodos waitForAndFindElement y waitForPendingRequests son métodos personalizados de New Relic que se proporcionan en Chrome 72 y en tiempos de ejecución browser con secuencias de comandos anteriores. Todavía se pueden usar con $driver y $browser en Chrome 100 y tiempos de ejecución más recientes, pero no estarán disponibles cuando se usan las API de Selenium Webdriver 4.1 directamente con $selenium y $webDriver. Este cambio alineará mejor la implementación de Selenium Webdriver de New Relic con la implementación básica de Selenium Webdriver .

Los clientes que opten por seguir usando waitForAndFindElement o waitForPendingRequests en el nuevo tiempo de ejecución pueden pegar ejemplos de código en sus monitores.

Copyright © 2024 New Relic Inc.

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