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

145
Vistas
No se encuentra el selector de titiriteros

Tengo un problema al depurar por qué no se hace clic en un selector de consulta. Puedo buscarlo en Chrome y también si uso document.querySelector() en las herramientas de desarrollo, encuentra la consulta, lo que me hace creer que es correcto. sin embargo, no lo está presionando y solo se agota el tiempo de espera

Haga clic en Método:

 async function click(page, selector, timeout) { await beforeAction(page, timeout); await page.waitForSelector(selector); await page.waitFor(200); await page.click(selector); }

Método principal que se ejecuta:

 async function existingStart(page) { await loadCookies(page); await page.goto( "https://mc.s7.exacttarget.com/cloud/#app/Email/C12/Default.aspx?entityType=none&entityID=0&ks=ks%23Content" , { waitUntil: 'load', timeout: 0 } ); await page.waitFor(200); const contentBuilderFrame = await findFrame(page, "contentbuilder"); const searchField = await contentBuilderFrame.$(".contentsearch > input"); searchField.focus(); await page.keyboard.type("20200903"); await page.waitFor(500); await page.keyboard.press('Enter'); await page.waitFor(5000); // Screenshot to check page state await page.screenshot({ path: "./screenshot.png", fullPage: true }); await page.waitFor(500); // Times out await click(page, '#contentRepeater > div.repeater-viewport > div.repeater-canvas.scrolling > div > div > table > tbody > tr:nth-child(1) > td:nth-child(3) > div > div > div > div')

}

Y si llamo al método find Iframe antes de hacer clic en el selector:

 await findFrame(page, "contentbuilder");

Realmente no sucede nada y falla con un problema de JSHandler, ¿alguien ha tenido algo similar? ¿Podría ser que el problema sea Iframes? Lo extraño es que la entrada de searchField y la pulsación de teclas funcionan bien. Además, es el mismo iframe, por lo que no debería tener que llamar a findFrame dos veces.

antes de la acción:

 async function beforeAction(page, timeout) { if (timeout != null) { await page.waitFor(timeout); } var isLoading = await isPageLoading(page); while (isLoading) { await new Promise((resolve) => setTimeout(resolve, 1000)); isLoading = await isPageLoading(page); } }
about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Dado que encontramos la respuesta en los comentarios, la publico aquí para otras personas que se encuentren con esta pregunta.

Como el selector de destino está en un iframe ( contentbuilder ), el contexto que se pasará como argumento al click en la función no es la page sino el elemento iframe: contentBuilderFrame .

about 4 years ago · Santiago Trujillo 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