Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

345
Visualizações
¿Hay alguna forma de abrir varias pestañas simultáneamente en Playwright o Puppeteer para completar las mismas tareas?

Acabo de empezar a programar y me preguntaba si había alguna forma de abrir varias pestañas al mismo tiempo. Actualmente, mi código es algo como esto:

 const puppeteer = require("puppeteer"); const rand_url = "https://www.google.com"; async function initBrowser() { const browser = await puppeteer.launch({ headless: false }); const page = await browser.newPage(); await page.goto(rand_url); await page.setViewport({ width: 1200, height: 800, }); return page; } async function login(page) { await page.goto("https://www.google.com"); await page.waitFor(100); await page.type("input[id ='user_login'", "xxx"); await page.waitFor(100); await page.type("input[id ='user_password'", "xxx"); }

este no es mi código exacto, reemplazado con diferentes alias, pero entiendes la idea. Me preguntaba si había alguien que conociera el código que permite que este mismo navegador se abra en varias instancias, reemplazando solo la información de inicio de sesión respectiva. Por supuesto, sería genial evitar que mi IP también sea prohibida, por lo que si hubiera una forma de aplicar proxies a cada "navegador"/instancia respectiva, sería perfecto.

Por último, me gustaría saber si el dramaturgo o el titiritero son superiores en la forma en que pueden manejar estas instancias múltiples. Ni siquiera sé si esto es una posibilidad, pero por favor ilumíname. Quiero aprender más.

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Hay opciones de creación de perfiles y proxy; Puedes combinarlos para lograr tu objetivo:

Perfil, https://playwright.dev/docs/api/class-browsertype#browser-type-launch-persistent-context

 import { chromium } from 'playwright' const userDataDir = /tmp/ + process.argv[2] const browserContext = await chromium.launchPersistentContext(userDataDir) // ...

Proxy, https://playwright.dev/docs/api/class-browsertype#browser-type-launch

 import { chromium } from 'playwright' const proxy = { /* secret */ } const browser = await chromium.launch({ proxy: { server: 'pre-context' } }) const browserContext = await browser.newContext({ proxy: { server: `http://${proxy.ip}:${proxy.port}`, username: proxy.username, password: proxy.password, } }) // ...
about 4 years ago · Juan Pablo Isaza Relatório

0

Puede utilizar varias ventanas del navegador como diferentes inicios de sesión/cookies.
Para simplificar, puede usar el módulo de puppeteer-cluster de Thomas Dondorf.
Este módulo puede hacer que su titiritero se inicie y se ponga en cola uno por uno para que pueda usarlo para automatizar su inicio de sesión e incluso guardar cookies de inicio de sesión para los próximos lanzamientos.
Siéntase libre de ir a Github: https://github.com/thomasdondorf/puppeteer-cluster

 const { Cluster } = require('puppeteer-cluster') (async () => { const cluster = await Cluster.launch({ concurrency: Cluster.CONCURRENCY_CONTEXT, maxConcurrency: 2, // <= this is the number of // parallel task running simultaneously }) // You can change to the number of CPU const cpuNumber = require('os').cpus().length // for example await cluster.task(async ({ page, data: [username, password] }) => { await page.goto('https://www.example.com') await page.waitForTimeout(100) await page.type('input[id ="user_login"', username) await page.waitForTimeout(100) await page.type('input[id ="user_password"', password) const screen = await page.screenshot() // Store screenshot, Save Cookies, do something else }); cluster.queue(['myFirstUsername', 'PassW0Rd1']) cluster.queue(['anotherUsername', 'Secr3tAgent!']) // cluster.queue([username, password]) // username and password array passed into cluster task function // many more pages/account await cluster.idle() await cluster.close() })()

Para Playwright, lamentablemente aún no es compatible con el módulo anterior,
puede usar el módulo de grupo de navegadores (clúster) para automatizar el iniciador de Playwright.

Y para el uso de proxy, recomiendo la biblioteca Puppeteer como la legendaria.

No olvides elegir mi respuesta como la correcta, si esto te ayuda.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda