Para fazer com que o Puppeteer continue na mesma aba em vez de abrir uma nova, você pode usar a função target.createCDPSession() para se comunicar com o navegador por meio do Protocolo de Depuração do Chrome (CDP). Em seguida, você pode usar o método CDPSession.send() para enviar comandos específicos para manipular a aba atual.

Aqui está um exemplo de código que mostra como forçar o Puppeteer a continuar na mesma aba:

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  
  const client = await page.target().createCDPSession();
  await client.send('Target.activateTarget', {targetId: page.target()._targetId});
  
  await page.goto('https://www.example.com');
  
  // Continue navegando na mesma aba
  
  await page.goto('https://www.google.com');
  
  await browser.close();
})();

Neste exemplo, após abrir uma nova página, usamos client.send() para enviar o comando Target.activateTarget e especificamos o targetId da página atual. Isso faz com que o Puppeteer se comunique com o navegador e force a continuação na mesma aba. Em seguida, você pode usar page.goto() para navegar para o URL desejado na mesma aba.

Lembre-se de que nem todos os comandos do CDP são suportados pelo Puppeteer, então você pode precisar consultar a documentação do CDP para encontrar os comandos específicos que deseja usar


原文地址: https://www.cveoy.top/t/topic/ioEP 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录