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

157
Views
Problema al cerrar una ventana secundaria usando Javascript en la automatización web

Estoy tratando de automatizar un proceso de navegador usando Selenium WebDriver.

El sitio web genera una serie de archivos descargables con un botón de enlace para cada uno. Al hacer clic en el botón de enlace, se abre una nueva ventana del navegador en la que se descarga el archivo. Pero la nueva ventana del navegador no está codificada para cerrarse.

Localicé la función JavaScript/jQuery OpenWindowUrl en la herramienta de desarrollo web de Chrome que abre la nueva ventana del navegador, y la esencia de la función se muestra a continuación.

Como puede ver, la función llama a otra función GetRootWin para abrir la nueva ventana del navegador y descargar el archivo, luego fuerza la nueva ventana del navegador al primer plano. Ojalá tuviera algunas líneas más para cerrarlo después de 3 segundos más o menos.

Dado que la variable wnd , que es el identificador de la nueva ventana del navegador, está dentro de la definición de la función, no puedo usarla en mi automatización para cerrar la ventana del navegador como wnd.close(); , porque wnd no está definido fuera de la función.

Aunque mi proceso de automatización funciona bien sin cerrar las ventanas secundarias, potencialmente me dejará abiertas más de 200 ventanas secundarias, lo que no es una buena idea.

¿Hay alguna manera de anular esta función OpenWindowUrl de modo que el sitio web llame a mi nueva OpenWindowUrl ? En caso afirmativo, puedo ejecutar mi nuevo fragmento para OpenWindowUrl usando IJavaScriptExecutor de Selenium antes de descargar los archivos. ¿O hay alguna forma de inyectar wnd.close(); en la función OpenWindowUrl ?

 $.extend(Namespace('NS'), { OpenWindowUrl: function (url, winName, parameters) { ... ... var wnd = NS.GetRootWin().open(url, winName, parameters); // Force the window into the foreground setTimeout(function () { wnd.focus(); }, 500); }, });
about 4 years ago · Juan Pablo Isaza
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!