Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

214
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!