Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

346
Vistas
¿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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda