我想使用Puppeteer(v20.8.0)来控制与我的常规Chrome浏览器相同的配置文件/会话。具体来说,我希望我登录的网站在打开新的 puppet 师示例时保持登录状态。
将userDataDir
传递给Puppeteer无法按预期工作。
我能够打开一个 puppet 师Chrome示例,该示例肯定具有书签和个人资料图片,甚至与非 puppet 师生成的Chrome相同的标签。Puppeteer衍生的Chrome示例也有“Chrome正在被自动测试软件控制”的消息。
然而,在 puppet 师衍生的Chrome浏览器上,我没有登录任何网站,我通常在非 puppet 师衍生的Chrome浏览器上登录。所以这就像饼干,存储,或任何工作不正常或不被 puppet 师或东西使用。
const os = require('os');
const username = os.userInfo().username;
const workingExePath = '/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome';
const workingDataBaseDir = `/Users/${username}/Library/Application\ Support/Google/Chrome`
const browser = await puppeteer.launch({
headless: false,
executablePath: workingExePath, // supply the user-specific path here
defaultViewport: {
width: 1280,
height: 720
},
userDataDir: workingDataBaseDir, // supply the user-specific path here
args: [
'--mute-audio', // this mutes the entire browser, not just one tab
'--profile-directory=Default',
]
});
const page = await browser.newPage();
await page.goto('https://mail.google.com/mail/u/0/#inbox');
字符串
x1c 0d1x的数据
为了看看我是否能有更多的运气,我手动复制userDataDir
到/Users/${username}/Library/Application\ Support/Google/Chrome_
(只是在末尾有一个下划线),并尝试使用这个新的文件夹与 puppet ,但它仍然不起作用。
1条答案
按热度按时间hmtdttj41#
几点建议:
./
)时,这段代码工作得更好。配置文件和cookie工作正常,而在旧位置,它非常挑剔,有时会抛出“无法启动浏览器进程”错误,有时不会正确拾取cookie。chrome://version/
来查看最终生效的真实的位置,有时它并不是我想象的那样。字符串