Javascript 木偶演员在当前窗口而不是新窗口中启动新选项卡

Javascript 木偶演员在当前窗口而不是新窗口中启动新选项卡,javascript,google-chrome,chromium,puppeteer,Javascript,Google Chrome,Chromium,Puppeteer,我尝试了几乎所有的方法,但似乎不知道如何让Puppeter在我当前登录到Chrome的浏览器窗口中工作,而不是一个新的无缓存注销浏览器。这是我当前的配置设置。我已经尝试使用远程调试端口启动chrome Previor,在args中加载用户数据以启动Puppeter,启动chrome和我当前的chrome安装路径,等等。以下是我当前的代码: const opts = { logLevel: 'info', output: 'json' }; const chrome = await c

我尝试了几乎所有的方法,但似乎不知道如何让Puppeter在我当前登录到Chrome的浏览器窗口中工作,而不是一个新的无缓存注销浏览器。这是我当前的配置设置。我已经尝试使用远程调试端口启动chrome Previor,在args中加载用户数据以启动Puppeter,启动chrome和我当前的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});
我已经没有资源可以看了,如果有什么不对劲,请告诉我。谢谢

必须使用userDataDir来重用缓存

puppeteer.launch({
  userDataDir: 'PATH TO DATA FOLDER',
})
你可以在这里找到你的数据目录

Windows 7、8.1和10:C:\Users\\AppData\Local\Google\Chrome\User Data\Default Mac OS X El Capitan:用户//库/应用程序支持/Google/Chrome/Default Linux:/home/.config/google chrome/default 另一种方法是开放chrome://version 从那里选择道路

现在,删除默认值,您将获得数据目录

[配置文件路径]C:\Users\Alice\AppData\Local\Google\Chrome\User Data\Default [User Data Dir]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
})
您必须使用userDataDir来重用缓存

puppeteer.launch({
  userDataDir: 'PATH TO DATA FOLDER',
})
你可以在这里找到你的数据目录

Windows 7、8.1和10:C:\Users\\AppData\Local\Google\Chrome\User Data\Default Mac OS X El Capitan:用户//库/应用程序支持/Google/Chrome/Default Linux:/home/.config/google chrome/default 另一种方法是开放chrome://version 从那里选择道路

现在,删除默认值,您将获得数据目录

[配置文件路径]C:\Users\Alice\AppData\Local\Google\Chrome\User Data\Default [User Data Dir]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
})

不确定这是否对您的情况有用,因为我使用的是chrome浏览器,而不是我的系统chrome浏览器,但我将chrome设置保存在项目中。 我仍在学习如何使用木偶演员,所以可能不是用最好的方式做每件事

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.

不确定这是否对您的情况有用,因为我使用的是chrome浏览器,而不是我的系统chrome浏览器,但我将chrome设置保存在项目中。 我仍在学习如何使用木偶演员,所以可能不是用最好的方式做每件事

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.

在启动时添加-new window参数

在启动时添加-new window参数

在args中加载用户数据以启动Puppeter,它表示您尝试了此方法。但是,您没有提到在何处尝试此操作以及为什么要使用-disable extensions args或使用browserWSpoint:你好我用-user data dir将它加载到args中,作为puppeter的一个参数,也将用户数据加载到args中以启动puppeter,它说您尝试了这个。但是,您没有提到在何处尝试此操作以及为什么要使用-disable extensions args或使用browserWSpoint:你好我用-user data dir将它加载到args中,并作为puppeter的参数!感谢您的回复-我尝试了上面列出的方法:const browser=wait puppeter.launch{headless:false,userDataDir:C:\\Users\\scott\\AppData\\Local\\Google\\Chrome\\User Data\\Default};const page=await browser.newPage;等待page.setViewport{宽度:1366,高度:768};没有成功-仍然启动一个新窗口,仍然没有我的用户数据我没有写出正确的答案,很抱歉,请给我一分钟时间更新它。好了,试试这个,让我知道发生了什么。原始问题有。连接,所以我建议一个新项目只包含最小的可复制代码:你好感谢您的回复-我尝试了上面列出的方法:const browser=wait puppeter.launch{headless:false,userDataDir:C:\\Users\\scott\\AppData\\Local\\Google\\Chrome\\User Data\\Default};const page=await browser.newPage;等待page.setViewport{宽度:1366,高度:768};没有成功-仍然启动一个新窗口,仍然没有我的用户数据我没有写出正确的答案,很抱歉,请给我一分钟时间更新它。好了,试试这个,让我知道发生了什么。原始问题有。连接,所以我建议一个新项目只包含最小的可复制代码:你能解释一下这个命令是如何解决问题的吗?你能解释一下这个命令是如何解决问题的吗?