Skip to content Skip to sidebar Skip to footer

Unhandledpromiserejectionwarning: Error: Protocol Error (runtime.callfunctionon): Target Closed. (puppeteer)

I am new to Puppeteer and Node and I get this error when trying to execute the following code: 'use strict'; const puppeteer = require('puppeteer'); const evalLib = require('./oaa

Solution 1:

As Sven mentioned in the comments, you should use await on every page function that returns a promise (that's almost all of them) before closing the browser.

Try this:

'use strict';

const puppeteer = require('puppeteer');
const evalLib = require('./oaa_a11y_evaluation.js');

asyncfunctionevaluateRules() {
  var ruleset = OpenAjax.a11y.RulesetManager.getRuleset("ARIA_STRICT");
  var evaluator_factory = OpenAjax.a11y.EvaluatorFactory.newInstance();
  evaluator_factory.setParameter('ruleset', ruleset);
  evaluator_factory.setFeature('eventProcessing', 'fae-util');
  evaluator_factory.setFeature('groups', 7);
  var evaluator = evaluator_factory.newEvaluator();
  var evaluation = evaluator.evaluate(window.document, document.title, document.location.href);
  // var out = evaluation.toJSON(true);return;
}

(async() => {
  const browser = await puppeteer.launch();
  var page = await browser.newPage();
  await page.goto('http://mihirkumar.com/', {waitUntil: 'load'});
  await page.evaluate(evaluateRules); // <-- await hereawait browser.close();
})();

Solution 2:

Thanks for the responses. Making the function async is definitely a change for the better. My problem was that I wasn't injecting the OpenAjax javascript libraries into the loaded page. Once I did that with puppeteer's page.addScriptTag function things worked just fine.

Solution 3:

If U are using jest just add "exitOnPageError: false" on

module.exports= {
  server: {
    command:"PORT=3005 BROWSER=none react-scripts start",
    port:3005,
    launchTimeout:30000,
  },
  launch: {
    headless:process.env.HEADLESS!=="false",
    devtools:true,
  },
  exitOnPageError:false
};

Post a Comment for "Unhandledpromiserejectionwarning: Error: Protocol Error (runtime.callfunctionon): Target Closed. (puppeteer)"