Estoy tratando de esperar un selector. Cuando el selector no está disponible, lo que puede suceder, esperaría detectar ese error en .catch() y poder continuar con mi programa. En su lugar, aparece el error UnhandledPromiseRejectionWarning .
¿Cómo puedo escribir un programa que pueda manejar selectores que no se encuentran o expiran?
Código
await page.waitForSelector('#step3 > div > div > div > div.time-selection-wrapper > div.v-card.v-sheet.theme--light > div > div > div.v-picker__title.primary-color > div > div.v-picker__title__btn.v-date-picker-title_custom1.v-picker__title__btn--active > div', {timeout: 5000}) .then(async () => { console.log("Entered THEN") }) .catch((e) => { if (e instanceof puppeteer.errors.TimeoutError) { console.log("Timeout") } })Producción
Tiempo de espera (nodo: 9540) UnhandledPromiseRejectionWarning: Error: No se puede hacer clic en el nodo o no es un HTMLElement en ElementHandle.clickablePoint (/home/john/git/myproject/node_modules/puppeteer/lib/cjs/puppeteer/common/JSHandle.js:412 :19) (nodo:9540) UnhandledPromiseRejectionWarning: Rechazo de promesa no manejado. Este error se originó al lanzar dentro de una función asíncrona sin un bloque catch o al rechazar una promesa que no se manejó con .catch(). (Id. de rechazo: 1) (nodo: 9540) [DEP0018] Advertencia de desuso: los rechazos de promesa no controlados están en desuso. En el futuro, los rechazos de promesas que no se controlen terminarán el proceso de Node.js con un código de salida distinto de cero.