Weird error received
DNAScanner opened this issue · 6 comments
Helo.
First off, im not sure if this issue is from pageres or puppeteer itself, but I'm getting some weird error right after the pageres function has been called:
node:events:504
throw er; // Unhandled 'error' event
^
ProtocolError: Protocol error (DOM.resolveNode): No node with given id found
at file:///E:/Coding/Discord-Bots/OhHellNaw-Bot/node_modules/puppeteer/lib/esm/puppeteer/common/Connection.js:294:24
at new Promise (<anonymous>)
at CDPSession.send (file:///E:/Coding/Discord-Bots/OhHellNaw-Bot/node_modules/puppeteer/lib/esm/puppeteer/common/Connection.js:290:16)
at IsolatedWorld.adoptBackendNode (file:///E:/Coding/Discord-Bots/OhHellNaw-Bot/node_modules/puppeteer/lib/esm/puppeteer/common/IsolatedWorld.js:356:121)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async IsolatedWorld.adoptHandle (file:///E:/Coding/Discord-Bots/OhHellNaw-Bot/node_modules/puppeteer/lib/esm/puppeteer/common/IsolatedWorld.js:368:17)
at async IsolatedWorld.transferHandle (file:///E:/Coding/Discord-Bots/OhHellNaw-Bot/node_modules/puppeteer/lib/esm/puppeteer/common/IsolatedWorld.js:371:24)
at async Promise.all (index 0)
at async internalCaptureWebsiteCore (file:///E:/Coding/Discord-Bots/OhHellNaw-Bot/node_modules/capture-website/index.js:322:3)
at async internalCaptureWebsite (file:///E:/Coding/Discord-Bots/OhHellNaw-Bot/node_modules/capture-website/index.js:162:10)
Emitted 'error' event on Client instance at:
at emitUnhandledRejectionOrErr (node:events:383:10)
at processTicksAndRejections (node:internal/process/task_queues:85:21) {
originalMessage: 'No node with given id found'
}
Hello there, Can you upload some of your code? I might be able to see if your missing something... or you can try adding this with headless: false
mode:
browser.on('targetcreated', async target => { if (target.type() === 'page') { const page = await target.page() await page.target().createCDPSession() } })
This is my code. It worked until a few days
await new Pageres({delay: 3, script: `./web_scripts/google_translate/run.js`})
.source(translationUrl, ["1920x1080"], {filename: `${imageId}`, selector: `body > c-wiz:nth-of-type(1) > div:nth-of-type(1) > div:nth-of-type(2) > c-wiz:nth-of-type(1) > div:nth-of-type(2) > c-wiz:nth-of-type(1) > div:nth-of-type(1)`})
.destination("./images/")
.run();
You could try waiting for the selector to appear. Like set a timeout before continuing
Do you mean delay?
So no, you already have a delay of 3 seconds there... what im saying is have puppeteer wait for the selector maybe something like
page.waitForSelector('body
> c-wiz:nth-of-type(1) > div:nth-of-type(1) > div:nth-of-type(2) > c-wiz:nth-of-type(1) > div:nth-of-type(2) > c-wiz:nth-of-type(1) > div:nth-of-type(1)', {timeout: 10 * 1000})`
so instead of what your doing try something like this:
await new Pageres({
delay: 3,
beforeScreenshot: async (page, browser) => {
await checkSomething();
await page.waitForSelector('body > c-wiz:nth-of-type(1) > div:nth-of-type(1) > div:nth-of-type(2) > c-wiz:nth-of-type(1) > div:nth-of-type(2) > c-wiz:nth-of-type(1) > div:nth-of-type(1)', {timeout: 10 * 1000})
await page.click('do something with that selector or any other selector'); // you might not need this.
}
})
.source(translationUrl, ["1920x1080"],{filename: ${imageId}})
.destination('./images/')
.run();
console.log('finished so and so');
Plottwist, google just did some stuff i didnt like so that was the actual reason, why that stuff didn't work. Thanks anyways