Como tener un condicional en Playwright en caso que siga aun presente un elemento

Buenas lectores.

En este post vamos a observar dos cosas, la primera como hacer un condicional o ciclo para que la automatización espere hasta que un elemento ya no sea visible y adicional observaremos como realizar un control a una acción sin que se detenga nuestra automatización:

 

let visible = await page.locator('#btn').isVisible();  
  while (visible) {    
    try {
    await page.locator('#btn').click({ timeout: 1000 });    
    } catch (error) {
      console.error('El elemento no se encontró o no se pudo hacer clic en él.');
    }
    visible = await page.locator('#btn').isVisible();
    console.log(visible);
  }  


Observamos lo siguiente:

Almacenamos en la variable visible el valor booleando que nos retorna si es visible o no.

Mientras es visible tratamos de dar un clic a un elemento, en caso que ya no sea visible por los milisegundos, al estar dentro del try nos retorna que ya no lo puede ver y sigue el proceso.

De esta manera tan simple podemos controlar y esperar que algunos controles que se resisten a seguir con las funciones normales que nos ofrece el framework se controlen.

Saludos.


Fuentes:

https://stackoverflow.com/questions/64784781/how-to-check-if-an-element-exists-on-the-page-in-playwright-js

https://stackoverflow.com/questions/70179441/check-if-element-is-visible-in-playwright

https://playwright.dev/docs/api/class-locator#locator-is-visible













Comentarios

Entradas populares de este blog

Tiempo de espera "muerto" explicito en Playwright

SerenityBDD - Almacenar valores en memoria (pasar información entre steps)

Subir mi proyecto local a Azure repos