更换硬件重置Windows后Puppeteer page.waitForXPath报错求助
解决方案:page.waitForXPath 不存在的问题
问题原因
最新版 Puppeteer(v19 及以上)已移除 page.waitForXPath() 方法,你重置系统后将依赖更新到最新版本,导致旧代码调用了已废弃的 API,触发 TypeError。
修复步骤
1. 替换等待逻辑为新版 API
将原代码中的 page.waitForXPath() 替换为 page.waitFor(),指定 XPath 类型:
// 替换原等待代码 await page.waitFor('//*[@id="loginContainer"]/div/div/div[3]', { type: 'xpath' });
2. 修正 click 方法的错误调用
你当前的 click() 方法传入了多余的 XPath 参数,click() 无需传参(已通过 $x 获取到目标元素),修正后:
const FClick = await page.$x('//*[@id="loginContainer"]/div/div/div[3]'); await FClick[0].click();
可选方案:锁定旧版 Puppeteer(不推荐)
如果暂时不想适配新版 API,可以在 package.json 中锁定 Puppeteer 到 v18.x 版本:
npm install puppeteer@18.2.1 puppeteer-extra@3.3.6 --save-exact
注意:旧版本可能存在安全漏洞,建议优先适配新版 API。
验证方法
- 保存修改后的代码
- 重新运行项目,确认等待和点击逻辑正常执行
内容的提问来源于stack exchange,提问作者VortexJS
相关产品推荐
相关产品推荐

