Actualmente estoy construyendo un programa de titiritero que me permite iniciar sesión en un sitio web, sin embargo, después de ingresar el inicio de sesión, parece que no puedo hacer que el titiritero haga clic en el botón de inicio de sesión o en cualquier botón. botón en cuestión e ingrese su clase ="botón de inicio de sesión" pero aún no funciona en el navegador sin interfaz que estoy ejecutando. Dice en la hoja de error que no se encontró ningún nodo para el selector: botón [tipo = enviar]. Es mi tercer día de codificación, me encantaría cualquier ayuda que pueda obtener. ¡Gracias! Deje sus sugerencias a continuación. Quiero saber cómo hacer que el titiritero haga clic en los botones en la pantalla, pero tengo problemas.
Nota: he intentado await page.$eval("button[class='sign-in-button']", elem => elem.click()); no funcionó..
botón de inicio de sesión cuando se pasa el cursor sobre
esto es lo que dice en los elementos de las herramientas de desarrollo
Su selector de CSS apunta a un elemento de button en lugar de a un elemento de input y, por lo tanto, no se encuentra.
Cambiar el selector a esto debería funcionar:
await page.$eval("input[class='sign-in-button']", elem => elem.click()); Alternativamente, puede seleccionarlo a través del nombre de clase, de modo que si el elemento de input se cambiara a un elemento de button , el código no se rompería. Cada vez que pones un punto . antes de un selector css, lo trata automáticamente como selector de clase.
await page.$eval(".sign-in-button", elem => elem.click()); En lugar de hacer clic en el elemento dentro del contexto del navegador ( DOM ), podría usar page.$ para recibir un identificador de botón y hacer clic en eso.
// use $ method for receiving a handle to your sign-in button/input const btn = await page.$('.sign-in-button') // click it using the `puppeteer` api instead of native DOM clicking.. btn.click()