我已经尝试了几乎所有内容,但是似乎无法弄清楚如何让Puppeteer在当前的浏览器窗口(我登录到Chrome的位置)而不是新的无缓存注销的浏览器中工作。这是我当前的配置设置。我尝试过使用远程调试端口先启动chrome,将参数数据加载到args中以启动puppeteer,启动Chromium和当前的Chrome安装路径,等等。这是当前的代码:
const opts = {
logLevel: 'info',
output: 'json'
};
const chrome = await chromelauncher.launch( {port:9222 });
opts.port = chrome.port;
// Connect to it using puppeteer.connect().
const resp = await util.promisify(request)(`http://localhost:${opts.port}/json/version`);
const {webSocketDebuggerUrl} = JSON.parse(resp.body);
const browser = await puppeteer.connect({browserWSEndpoint: webSocketDebuggerUrl,
args: ["--disable-extensions"]});
const page = await browser.newPage();
await page.setViewport({ width: 1366, height: 768});
我已经没有足够的资源来查找了,如果看起来有些麻烦,请告诉我。谢谢!
答案 0 :(得分:1)
您必须使用userDataDir
重用缓存。
puppeteer.launch({
userDataDir: 'PATH TO DATA FOLDER',
})
您可以在此处找到数据目录,
C:\Users\<username>\AppData\Local\Google\Chrome\User Data\Default
Users/<username>/Library/Application Support/Google/Chrome/Default
/home/<username>/.config/google-chrome/default
另一种方法是打开chrome://version
并从那里选择路径,
现在,删除Default
,您将获得数据目录,
C:\Users\Alice\AppData\Local\Google\Chrome\User Data\Default
C:\Users\Alice\AppData\Local\Google\Chrome\User Data
所以代码看起来像
puppeteer.launch({
userDataDir: `C:\Users\Alice\AppData\Local\Google\Chrome\User Data`,
// <-- notice I used backtick to avoid writing backslashs
})
详细了解数据目录here。
另一个有趣的参数是--profile-directory
,您可以命名配置文件并使用它。
--profile-directory=Default
答案 1 :(得分:0)
由于我使用Chromium浏览器而不是系统chrome浏览器,但是我将Chromium设置保存在项目PeaceOut中,因此不确定这是否对您的情况有用。 我仍在学习如何使用puppeteer,因此可能无法以最佳方式做所有事情。
const browser = await puppeteer.launch({
headless: false,
devtools: true,
// slowMo: 250 // slow down by 250ms
// executablePath <string> Path to a Chromium or Chrome executable to run
userDataDir: 'C:\\Users\\TeDev\\Scrape\\PeaceOut\\bdata'
// userDataDir <string> Path to a User Data Directory.
});
const page = await browser.pages();
await page[0].setViewport({ width: 1280, height: 1080 })
console.log(`Trying to access ${URL}`);
await page[0].goto(URL); // use tab 0, so Chromium doesn't show a blank tab.
答案 2 :(得分:0)
启动时添加 --new-window 参数