

# Funciones de la biblioteca disponibles para los scripts de canarios de Node.js con Playwright
<a name="CloudWatch_Synthetics_Canaries_Nodejs_Playwright"></a>

En esta sección se describen las funciones de biblioteca disponibles para los scripts de canarios que utilizan el tiempo de ejecución de Playwright para Node.js.

**Topics**
+ [lanzamiento](#Synthetics_Library_Nodejs_Playwright_functions)
+ [newPage](#Synthetics_Library_Nodejs_Playwright_function_newPage)
+ [close](#Synthetics_Library_Nodejs_Playwright_function_close)
+ [getDefaultLaunchOptions](#Synthetics_Library_Nodejs_Playwright_function_getDefaultLaunchOptions)
+ [executeStep](#Synthetics_Library_Nodejs_Playwright_function_executeStep)

## lanzamiento
<a name="Synthetics_Library_Nodejs_Playwright_functions"></a>

Esta función inicia un navegador Chromium mediante una función de lanzamiento de Playwright y devuelve el objeto del navegador. Descomprime los archivos binarios del navegador y lanza el navegador Chromium mediante las opciones predeterminadas adecuadas para un navegador sin periféricos. Para obtener más información sobre la función `launch`, consulte [https://playwright.dev/docs/api/class-browsertype#browser-type-launch](https://playwright.dev/docs/api/class-browsertype#browser-type-launch) en la documentación de Playwright.

 **Uso** 

```
const browser = await synthetics.launch();
```

 **Argumentos** 

`options` [opciones](https://playwright.dev/docs/api/class-browsertype#browser-type-launch) (opcional) es un conjunto configurable de opciones para el navegador.

 **Devuelve** 

La promesa `<Browser>` en la que [Browser](https://playwright.dev/docs/api/class-browser) es una instancia de navegador de Playwright.

Si se vuelve a llamar a esta función, se cierra un navegador abierto anteriormente antes de iniciar un navegador nuevo. Se pueden anular los parámetros de lanzamiento que utiliza CloudWatch Synthetics y pasar parámetros adicionales al lanzar el navegador. Por ejemplo, el siguiente fragmento de código lanza un navegador con argumentos predeterminados y una ruta ejecutable predeterminada, pero con una ventana gráfica de 800 x 600 píxeles. Para obtener más información, consulte las [opciones de lanzamiento de Playwright](https://playwright.dev/docs/api/class-browsertype#browser-type-launch) en la documentación de Playwright.

```
const browser = await synthetics.launch({
  defaultViewport: { 
      "deviceScaleFactor": 1, 
      "width": 800,
      "height": 600 
}});
```

 También puede agregar o anular los marcadores de Chromium que se envían de forma predeterminada al navegador. Por ejemplo, puede deshabilitar la seguridad web si agrega un indicador `--disable-web-security` a los argumentos en los parámetros de lanzamiento de CloudWatch Synthetics: 

```
// This function adds the --disable-web-security flag to the launch parameters
const defaultOptions = await synthetics.getDefaultLaunchOptions();
const launchArgs = [...defaultOptions.args, '--disable-web-security'];
const browser = await synthetics.launch({
    args: launchArgs
  });
```

## newPage
<a name="Synthetics_Library_Nodejs_Playwright_function_newPage"></a>

La función `newPage()` crea y devuelve una nueva página de Playwright. Synthetics configura automáticamente una conexión de Chrome DevTools Protocol (CDP) para permitir las capturas de red para la generación de archivos (HAR) HTTP.

 **Uso** 

Utilice `newPage()` en cualquiera de las siguientes maneras:

 **1. Crear una página nueva en un nuevo contexto de navegador:** 

```
const page = await synthetics.newPage(browser);
```

 **2. Crear una página nueva en un contexto de navegador especificado:** 

```
// Create a new browser context
const browserContext = await browser.newContext();

// Create a new page in the specified browser context
const page = await synthetics.newPage(browserContext)
```

 **Argumentos** 

Acepta la instancia de [Browser](https://playwright.dev/docs/api/class-browser) o [BrowserContext](https://playwright.dev/docs/api/class-browsercontext) de Playwright. 

 **Devuelve** 

La promesa <Page> en la que Page es una instancia de [Page](https://playwright.dev/docs/api/class-page) de Playwright.

## close
<a name="Synthetics_Library_Nodejs_Playwright_function_close"></a>

Cierra el navegador actualmente abierto.

 **Uso** 

```
await synthetics.close();
```

Se recomienda cerrar el navegador en un bloque `finally` del script.

 **Argumentos** 

Ninguno 

 **Devuelve** 

Devuelve la promesa <void> que se utiliza en la función de lanzamiento de Synthetics para lanzar el navegador.

## getDefaultLaunchOptions
<a name="Synthetics_Library_Nodejs_Playwright_function_getDefaultLaunchOptions"></a>

La función `getDefaultLaunchOptions()` muestra los resultados de las opciones de lanzamiento del navegador que CloudWatch Synthetics utiliza.

 **Uso** 

```
const defaultOptions = await synthetics.getDefaultLaunchOptions();
```

 **Argumentos** 

Ninguno 

 **Devuelve** 

Devuelve las [opciones de lanzamiento](https://playwright.dev/docs/api/class-browsertype#browser-type-launch) de Playwright que se utilizan en la función `launch` de Synthetics para lanzar el navegador.

## executeStep
<a name="Synthetics_Library_Nodejs_Playwright_function_executeStep"></a>

La función `executeStep` se usa para ejecutar un paso en un script de Synthetics. En CloudWatch Synthetics, un paso de Synthetics es una forma de dividir el script de canario en una serie de acciones claramente definidas, lo que le permite supervisar distintas partes del recorrido de la aplicación por separado. Para cada paso, CloudWatch Synthetics hace lo siguiente:
+ Hace automáticamente una captura de pantalla antes de iniciar y completar el paso. También puede hacer capturas de pantalla dentro de un paso. Las capturas de pantalla se hacen de forma predeterminada, pero se pueden desactivar mediante las configuraciones de Synthetics.
+ Para cada ejecución de canarios, se crea un informe que incluye un resumen de los detalles de la ejecución de los pasos, como la duración de un paso, el estado `pass` o `fail`, las URL de las páginas de origen y destino, las capturas de pantalla asociadas, etc. Al elegir una ejecución en la consola de CloudWatch Synthetics, puede ver los detalles de ejecución de cada paso en la pestaña **Paso**.
+ Las métricas de CloudWatch `SuccessPercent` y `Duration` se emiten para cada paso, lo que permite a los usuarios supervisar la disponibilidad y la latencia de cada paso.

 **Uso** 

```
await synthetics.executeStep("mystepname", async function () {
  await page.goto(url, { waitUntil: 'load', timeout: 30000 });
}
```

**nota**  
Los pasos deben ejecutarse de forma secuencial. Asegúrese de usar `await` en las promesas.

 **Argumentos** 
+ Cadena `stepName` (obligatoria) (booleano): nombre del paso de Synthetics. 
+ Función asíncrona `functionToExecute` (obligatoria): la función que quiere que ejecute Synthetics. Esta función debe contener la lógica del paso.
+ Objeto `stepConfig` (opcional): la configuración del paso anula la configuración global de Synthetics para este paso.
  + Booleano `continueOnStepFailure` (opcional): indica si se debe continuar ejecutando el script de canarios después de que se produzca un error en este paso. 
  + Booleano `screenshotOnStepStart` (opcional): si se toma una captura de pantalla al inicio de este paso. 
  + Booleano `screenshotOnStepSuccess` (opcional): si se toma una captura de pantalla si este paso es correcto. 
  + Booleano `screenshotOnStepFailure` (opcional): si se toma una captura de pantalla si se produce un error en este paso. 
+ `page`: objeto de página de Playwright (opcional)

  Objeto de página de Playwright. Synthetics usa este objeto de página para hacer capturas de pantalla y URL. De forma predeterminada, Synthetics usa la página de Playwright que se crea cuando se llama a la función `synthetics.newPage()` para capturar detalles de la página, como capturas de pantalla y URL.

 **Devuelve** 

Devuelve una promesa que se resuelve con el valor que devuelve la función ` functionToExecute`. Para ver un script de ejemplo, consulte [Código de muestra para scripts de valores controlados](CloudWatch_Synthetics_Canaries_Samples.md) en esta guía.