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

155
Vistas
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
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