关于 puppeteer 的 Nodejs 问题
关于 puppeteer 的 Nodejs 问题
我通过 page.goto 来访问我要打印的页面,但是执行的时候就会提示net::ERR_NAME_NOT_RESOLVED
,我想问问这是什么情况啊,我这个页面直接浏览器打开是可以成功打开的,好奇怪啊,是在调用之前 setCookie 有问题导致的吗
去网上搜 net::ERR_NAME_NOT_RESOLVED
光看这个错误代码显然是 DNS 解析问题,可能你请求的 URL 有问题,域名没法正常解析,也有可能是你配置的 DNS 服务器有问题。
看起来是你访问页面的域名 dns 解析问题,所以你的应用放在哪运行?确保你应用及应用所在运行环境能访问这个网址。
确实是域名配置的问题,改了域名不提示这个报错了,但是他现在一直提示超时,搞不明白咋整
hang 在 page.waitForFunction, [waitForFunction]( https://pptr.dev/#?product=Puppeteer&version=v11.0.0&show=api-pagewaitforfunctionpagefunction-options-args), 只有你得 function 是 true promise 才会 resolve 。
[window.status]( https://developer.mozilla.org/en-US/docs/Web/API/Window/status) 这个 API 已经 deprected 了,就不会 true 了。
你可以用浏览器打开看 window.status 是空的
确实如此,太感谢了
关于你提到的Puppeteer的Node.js问题,这里有一些常见的解决方案和示例代码。
首先,确保你正确安装了Puppeteer。你可以通过npm安装:
npm install puppeteer
常见问题及解决方案
-
异步编程处理不当
Puppeteer的操作是异步的,因此你需要确保在访问Puppeteer对象之前,它已经被正确初始化。例如,使用
async/await
来等待launch
方法完成:const puppeteer = require('puppeteer'); (async () => { const browser = await puppeteer.launch(); const page = await browser.newPage(); await page.goto('https://example.com'); // 进行其他操作... await browser.close(); })();
-
作用域问题
确保在需要访问Puppeteer对象的地方,它已经被定义。如果你在函数内部初始化Puppeteer对象,但在函数外部尝试访问它,会导致未定义的问题。
-
版本兼容性
检查你的Node.js和Chrome版本是否与Puppeteer兼容。你可以查看Puppeteer的官方文档或GitHub页面,了解所需的版本信息。
-
环境配置
确保你的环境变量和路径设置正确,以便Puppeteer能够找到Chrome浏览器的可执行文件。
如果以上解决方案都没有解决问题,你可以查看Puppeteer的官方文档或在开发者社区中搜索相关的错误信息,以获取更多帮助。