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

217
Vistas
¿Cómo hacer clic en muchos elementos en Javascript sin errores?

He estado tratando de descargar todos los servidores de EE. UU. y CANADÁ aquí en el sitio web de Nord VPN: https://nordvpn.com/ovpn/

Traté de descargarlo manualmente, pero lleva mucho tiempo desplazarse hacia abajo cada vez e identificar cada servidor relacionado de EE. UU., así que solo escribí un Javascript simple que se puede ejecutar en Chrome Inspect Element Console:

 var servers = document.getElementsByClassName("mr-2"); var inc_servers = []; for (var i = 0; i < servers.length; i++) { var main_server = servers[i]; var server = servers[i].innerText; if(server.includes("ca")){ var parent_server = main_server.parentElement.parentElement; parent_server.querySelector(".Button.Button--primary.Button--small").click(); inc_servers.push(server); } } console.log(JSON.stringify(inc_servers));

También escribí un script de python simple que automáticamente hace clic en "guardar" el archivo:

 while True: try: app2 = pywinauto.Application().connect(title=u'Save As', found_index=0) app2.SaveAs.Save.click() except: pass

Obtiene todos los elementos, funciona allí, sin embargo, cuando dejo que javascript haga clic en cada elemento, tal vez debido a que hay demasiados elementos, devuelve un error:

VM15575:8 Limitación de la navegación para evitar que el navegador se cuelgue. Consulte https://crbug.com/1038223 . El interruptor de línea de comando --disable-ipc-flooding-protection se puede usar para omitir la protección

¿Hay alguna otra mejor alternativa para mi problema? ¿O tal vez cómo corregir el mensaje de error anterior? Intenté ejecutar este comando en mi símbolo del sistema: switch --disable-ipc-flooding-protection

pero también devuelve un error: 'cambiar' no se reconoce como un comando interno o externo, un programa operable o un archivo por lotes.

Solo sé Javascript básico y Python. Gracias

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

0

Entonces, de inmediato, su programa simplemente está descargando archivos demasiado rápido.

Agregar un pequeño retraso entre cada descarga de archivo permite que su JavaScript se ejecute.

 var servers = document.getElementsByClassName("mr-2"); var inc_servers = []; for (var i = 0; i < servers.length; i++) { var main_server = servers[i]; var server = servers[i].innerText; if(server.includes("ca")){ var parent_server = main_server.parentElement.parentElement; // Add 1 second delay between each download (fast enough on my computer.. Might be too fast for yours.) await new Promise(resolve => setTimeout(resolve, 1000)); parent_server.querySelector(".Button.Button--primary.Button--small").click(); } } // Remove the logging. Just tell the user that it's worked console.log("Done downloading all files.");

Esta es más una solución temporal, pero parece que este script solo necesita ejecutarse una vez, por lo que funcionará por ahora.

(su código Python funciona bien. No hay nada que hacer allí)

Espero que esto haya ayudado.

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