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

117
Vistas
Titiritero: línea de código que se ejecuta antes que otras

tengo este codigo:

 const puppeteer = require("puppeteer"); (async () => { const browser = await puppeteer.launch({ headless: false }); const page = await browser.newPage(); await page.goto("https://www.sisal.it/scommesse-matchpoint/quote/calcio/serie-a"); const [button1] = await page.$x('//div[@class="marketBar_changeMarketLabel__l0vzl"]/p'); button1.click(); const [button2] = await page.$x('//div[@class="listItem_container__2IdVR white marketList_listItemHeight__1aiAJ marketList_bgColorGrey__VdrVK"]/p[text()="1X2 ESITO FINALE"]'); button2.click(); })();

El problema es que después de hacer clic en el botón 1, la página cambia y el titiritero ejecuta inmediatamente la siguiente línea de código, en cambio, quiero que espere a que se cargue la nueva página porque, de lo contrario, arrojará un error ya que no puede encontrar el botón 2.

Encontré esta solución en stackoverflow:

 const puppeteer = require("puppeteer"); function delay(time) { return new Promise(function (resolve) { setTimeout(resolve, time); }); } (async () => { const browser = await puppeteer.launch({ headless: false }); const page = await browser.newPage(); await page.goto("https://www.sisal.it/scommesse-matchpoint/quote/calcio/serie-a"); const [button1] = await page.$x('//div[@class="marketBar_changeMarketLabel__l0vzl"]/p'); button1.click(); await delay(4000); const [button2] = await page.$x('//div[@class="listItem_container__2IdVR white marketList_listItemHeight__1aiAJ marketList_bgColorGrey__VdrVK"]/p[text()="1X2 ESITO FINALE"]'); button2.click(); })();

Pero, por supuesto, esta no es la mejor solución.

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Creo que tienes que modificar un poco en tu código:

 await button1.click(); await page.waitForNavigation({waitUntil: 'networkidle2'});

Para referencia, consulte la documentación .

about 4 years ago · Juan Pablo Isaza Denunciar

0

Encontré una solución, aquí está el código:

 const puppeteer = require("puppeteer"); (async () => { const browser = await puppeteer.launch({ headless: false }); const page = await browser.newPage(); await page.goto("https://www.sisal.it/scommesse matchpoint/quote/calcio/serie-a"); await page.waitForXPath('//div[@class="marketBar_changeMarketLabel__l0vzl"]/p'); const [button1] = await page.$x('//div[@class="marketBar_changeMarketLabel__l0vzl"]/p'); await button1.click(); await page.waitForXPath('//div[@class="listItem_container__2IdVR white marketList_listItemHeight__1aiAJ marketList_bgColorGrey__VdrVK"]/p[text()="1X2 ESITO FINALE"]'); const [button2] = await page.$x('//div[@class="listItem_container__2IdVR white marketList_listItemHeight__1aiAJ marketList_bgColorGrey__VdrVK"]/p[text()="1X2 ESITO FINALE"]'); button2.click(); })();
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