You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Puppeteer中从配置文件加载密码?(dotenv加载失败排查)

解决Puppeteer中密码安全存储与加载问题

你当前的问题主要出在两个地方:.env文件格式错误,以及没有正确调用dotenv的加载方法。下面是完整的修正方案:

1. 修正.env文件格式

dotenv不采用JSON格式,而是使用简单的键=值结构。修改你的.env文件为:

PASSWORD=secret

2. 正确加载环境变量

在loadPassword.js中,你需要主动调用config()方法来读取.env文件,否则环境变量不会被注入到process.env中。修改后的代码如下:

import { config } from "dotenv";

// 调用config()加载.env中的环境变量
config();

console.log('获取密码中');
const pass = process.env.PASSWORD;
console.log('密码已加载到变量"pass"中');
console.log('密码是:', pass);
const foo = process.env['PASSWORD'];
console.log(foo);

3. 忽略.env文件避免提交到仓库

在项目根目录的.gitignore文件中添加一行,确保.env不会被Git追踪:

.env

如果没有.gitignore文件,直接新建一个即可。

4. 在Puppeteer测试中使用密码

在你的Puppeteer测试脚本中,同样先加载环境变量,再使用密码:

import puppeteer from 'puppeteer';
import { config } from "dotenv";

config();

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('你的登录页面URL');
  
  // 输入密码
  await page.type('#password-input', process.env.PASSWORD);
  
  // 执行登录等后续操作...
  
  await browser.close();
})();

可选:使用Node.js原生环境变量加载(Node.js 20.6+)

如果你的Node.js版本在20.6及以上,可以不用依赖dotenv,直接通过命令行参数加载.env文件:

node --env-file=.env loadPassword

这种方式下,脚本中不需要导入和调用dotenv的config(),更简洁,但兼容性不如dotenv广泛。

内容的提问来源于stack exchange,提问作者William Jockusch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 10:55:02