Javascript 用puppeter处理网络错误
有人试过用木偶演员处理网络连接错误吗?我尝试启动一个随机页面,并检查在它工作之前是否没有收到错误(此尝试处于for循环中): 下面是我用来检查网络是否恢复的函数:Javascript 用puppeter处理网络错误,javascript,asynchronous,async-await,puppeteer,Javascript,Asynchronous,Async Await,Puppeteer,有人试过用木偶演员处理网络连接错误吗?我尝试启动一个随机页面,并检查在它工作之前是否没有收到错误(此尝试处于for循环中): 下面是我用来检查网络是否恢复的函数: async function handleConnexionError(refreshIntervalId,page1){ console.log('Retrying to connect') let errorHandle = true await page1.goto('https://www.reside
async function handleConnexionError(refreshIntervalId,page1){
console.log('Retrying to connect')
let errorHandle = true
await page1.goto('https://www.residentadvisor.net/dj.aspx?country=01').catch(() => {
errorHandle = false
})
if (errorHandle) {
console.log('Succesfully Reconnected')
clearInterval(refreshIntervalId)
return true
}
else {
console.log('Connection Fail Retrying in 10 sec ...')
}
}
但是它不能正常工作,因为脚本一直在运行,并且在for循环中循环,即使在wait中发生了错误…下面是一个关于我如何验证我的应用程序错误的示例 GeneralFunctions.js
validarErrores: (error, escenario)=>{
console.log(`${error.toString()}`.bgRed);
if (typeof escenario == `undefined`){
return self.mensajeError(`Error 500 - Objeto indefinido`);
}
const { TimeoutError } = require('puppeteer/Errors');
if (error instanceof TimeoutError) {
if (error.toString().search(`Navigation Timeout`) != -1) {
return self.mensajeError(`Se produjo un error de <strong> Timeout </strong> al navegar`);
}
for (pasos in escenario){
for(prop in escenario[pasos]){
if (error.toString().search(escenario[pasos][prop]) != -1) {
return self.mensajeError(`Se produjo un error al <strong> no poder localizar </strong> el campo <strong>${escenario[pasos][prop]}</strong>`);
}
}
}
return self.mensajeError(`Error 500 - ${error.toString}`);
}
else if (error instanceof Error) {
switch (true) {
case (error.toString().includes(`ERR_INTERNET_DISCONNECTED`)):
return self.mensajeError(`No hay conexión fisica a la red Local`);
break;
case (error.toString().includes(`ERR_CONNECTION_TIMED_OUT`)):
return self.mensajeError(`La aplicacion no se encuentra en línea`);
break;
case (error.toString().includes(`ERR_CONNECTION_REFUSED`)):
return self.mensajeError(`La dirección de la aplicacion no es correcta`);
break;
default:
return self.mensajeError(`La aplicación a encontrado el ${error}`);
break;
}
}
// throw new Error(error);
}
(async () => {
const puppeteer = require('puppeteer');
const browser = await puppeteer.launch();
const page = await browser.newPage();
try {
await page.setViewport({ "width": 1280, "height": 720 });
// Do someting
} catch (e) {
${funcionesGenerales.validarErrores(e, selectores);
}finally{
await browser.close();
}
})();
(async () => {
const puppeteer = require('puppeteer');
const browser = await puppeteer.launch();
const page = await browser.newPage();
try {
await page.setViewport({ "width": 1280, "height": 720 });
// Do someting
} catch (e) {
${funcionesGenerales.validarErrores(e, selectores);
}finally{
await browser.close();
}
})();