how handle windows pop up selenium using autoit
Este tutorial explica varios métodos para manejar ventanas emergentes en Selenium cada vez que la automatización se sale de alcance con la herramienta AutoIT:
AutoIT es una herramienta de terceros que le da a Selenium una mano amiga para manejar ventanas emergentes como ventanas emergentes de autenticación de Windows, aplicaciones Flash, aplicaciones de escritorio, etc.
Selenium está limitado a automatizar aplicaciones web únicamente. En algunos casos, puede aparecer una ventana emergente de Windows en la aplicación que Selenium no puede manejar. Para manejar tales escenarios, AutoIT brinda una mano amiga en la que se encarga de automatizar las aplicaciones emergentes y de escritorio de Windows.
=> Visite aquí para ver la serie de capacitación sobre selenio para todos.
Lo que vas a aprender:
Descripción general de la herramienta AutoIT
Aquí hay un tutorial en video:
Manejar ventanas emergentes con AutoIT
AutoIT es una herramienta de terceros que se utiliza para manejar aplicaciones basadas en Windows. El lenguaje de programación utilizado se llama VBScript.AutoIt también es un programa gratuito. Utiliza una combinación demovimiento del mouse y pulsaciones del teclado para automatizar las acciones que no es posible realizar con el controlador web selenium.
AutoIt se usa en formato .exe para que pueda usarse en el script de Selenium Automation.
Veamos un ejemplo, en donde necesitaríamos cargar un archivo a la aplicación.
El escenario es subir una foto de perfil en LinkedIn. Los pasos de prueba para este escenario son:
- Introducir URL
- Ingrese un nombre de usuario y contraseña válidos e inicie sesión.
- Haga clic en el icono de carga de perfil.
- Aparece una ventana emergente de Windows en la que se ingresa la ruta para cargar una imagen.
Hasta el paso 3, Selenium Automation puede manejarlo. Cuando aparece la ventana emergente de Windows, el script AutoIT se utiliza para automatizar esa parte.
Ahora, echemos un vistazo a cómo automatizar acciones en la ventana emergente de Windows.
Esto se puede manejar de 4 formas diferentes.
- Usar comandos de Windows para cargar un archivo en particular.
- Uso de comandos de control para cargar un archivo.
- Usando el argumento de la línea de comandos para especificar el nombre de archivo que se cargará.
- Usando la herramienta de grabación AutoIT.
Todos los scripts se crean usando AutoItScriptEditor, que está disponible en el paquete de carpetas AutoIt.
Navegar a AutoIt3> SciTE> SciTE.exe y abra la aplicación ScriptEditor.
# 1) Uso de comandos de Windows
Tenemos varios conjuntos de funciones en AutoIt.
Puedes echar un vistazo aquí. Ahora, para automatizar las acciones emergentes de Windows, analicemos primero las acciones. Éstos incluyen:
- Establece el foco en la ventana actual.
- Ingrese la ruta del nombre de archivo para cargar en el cuadro Nombre de archivo.
- Haga clic en el botón Abrir o presione Entrar en el teclado.
Entendamos los puntos anteriores en detalle:
- Establecer el foco en la ventana actual
WinWaitActive : Establece el foco del cursor en el nombre de la ventana especificado. En este caso, el título de la ventana es 'Abrir'. Entonces especificamos el comando comoWinWaitActive ('Abierto').
Tenga en cuenta que el mismo título de Windows es diferente para cada navegador.
Decir, para Firefox , es 'Carga de archivos', por lo que el comando AutoIT seráWinWaitActive ('Carga de archivos').
Para IE, es 'Archivo para cargar', por lo que el comando AutoIT seráWinWaitActive ('Archivo para cargar')
Para Chrome , está 'Abierto', por lo que el comando AutoIT seráWinWaitActive ('Abierto')
Debe especificar el título de la ventana en función del navegador que utilice para la automatización.
2. Ingrese la ruta del nombre de archivo para cargar en el cuadro Nombre de archivo
Enviar - envía trazos de teclado o, en otras palabras, simula acciones de teclado.
Las acciones pueden ser presionar la tecla Intro, la tecla Mayús, etc. O escribiendo una cadena, número, etc. En este ejemplo, necesito escribir el nombre del archivo, así que uso el comando para ingresar el nombre del archivo en la ventana. -Enviar ('D: pasaporte.jpg')
3. Haga clic en el botón Abrir o presione Entrar en el teclado
Enviar ({ENTER})- envía la pulsación de tecla ENTER a la ventana, que a su vez completa la acción de cargar.
lista doblemente enlazada en código fuente c ++
Guarde el script creado en cualquier ubicación. Se guardará en formato .au3. Una vez guardado, haga clic con el botón derecho en el archivo .au3 y compílelo.
Después de la compilación, se convierte a formato .exe (formato ejecutable). Este archivo es lo que usamos en el script de Selenium.
Una vez que se crea el archivo .exe, puede usar el archivo en la secuencia de comandos de Selenium Automation para ejecutar los comandos en él
Runtime.getRuntime.exec ('especifique aquí el nombre de archivo autoIt exe')
# 2) Uso de comandos de control
Tenemos ciertos comandos de control en AutoIT para realizar acciones. Aquí está la lista de comandos de control en AutoIT.
Veamos cómo automatizar el mismo escenario de carga de archivos usando estos comandos de control de AutoIT.
Ahora, en orden Para automatizar la ventana emergente de Windows, se deben realizar las siguientes acciones:
- Establece el foco en la ventana actual.
- Ingrese la ruta del nombre de archivo para cargar en el cuadro Nombre de archivo.
- Haga clic en el botón Abrir o presione Entrar en el teclado.
Entendamos los puntos anteriores en detalle:
- Establecer el foco en la ventana actual
ControlFocus:Establece el foco en el elemento especificado. En este caso, establecemos el foco en el cuadro de texto de edición.
Cuando miras su descripción, puedes ver que requiere uno o más parámetros. Podemos pasar estos parámetros usando la herramienta de información de Windows de AutoIt.
Vamos abra la aplicación AutoIT como se muestra a continuación:
La herramienta de información de Windows se abre de la siguiente manera:
Esta herramienta se utiliza para inspeccionar elementos en la aplicación / ventana emergente de Windows.
Para obtener varios atributos de cada elemento en la ventana emergente de Windows, arrastre el ícono 'Finder' de la Herramienta de información de Windows y haga clic en el elemento para mostrar sus propiedades como se muestra a continuación.
Tenemos sus propiedades mostradas en la herramienta como se muestra.
Para el cuadro FileName, las propiedades y sus valores correspondientes son:
- Título - Abierto
- ClassName - Editar
- Instancia - 1
Usando estas propiedades, podemos pasar los parámetros para el comando de control.
Ahora, para establecer el foco en el cuadro FileName, llamamos al comando 'ControlFocus' como se muestra a continuación:
- Sintaxis: ControlFocus ('título', 'texto', controlID)
- El 'título' corresponde al título que se muestra en la herramienta.
- Control Id es la combinación de ClassName + Instance en la herramienta
ControlFocus ('Abrir', '', 'Editar1')
Dónde,
- Abierto - es el título
- Edit1 - es el controlID (controlID = ClassName + Instance)
2. Ingrese la ruta del nombre de archivo para cargar en el cuadro Nombre de archivo
ControlSetText: escribe el texto del elemento.
- Sintaxis: ControlSetText ('título', 'texto', controlID, 'nuevo texto' (, bandera = 0))
En nuestro caso, tenemos el nombre del archivo en el cuadro de texto.
ControlSetText ('Abrir', '', 'Editar1', 'D: pasaporte.jpg')
Dónde,
- Abierto - es el título
- Edit1 - es el controlID (controlID = ClassName + Instance)
- D: passport.jpg: es el nombre del archivo que se cargará
3. Haga clic en el botón Abrir o presione Entrar en el teclado
ControlClick - realiza una acción de clic en el elemento. En este ejemplo, hacemos clic en el botón 'Abrir'
- Sintaxis: ControlClick ('título', 'texto', controlID (, botón = 'izquierda' (, clics = 1 (, x (, y)))))
En nuestro caso, debería hacer clic en el botón 'Abrir' en la ventana emergente de Windows.
ControlClick ('Abrir', '', 'Botón1')
Dónde,
- Abierto - es el título
- Button1 - es el controlID (controlID = ClassName + Instance)
Llamamos al archivo .exe desde el código de Selenium usando el comando-Runtime.getRuntime.exec ('especifique aquí el nombre de archivo autoIt exe')
NOTA: Cuando tenemos que cargar varios archivos en una sola instancia, podemos especificar todos los nombres de archivo en una variable y pasar el nombre de la variable en el comando.
ControlFocus: establece el enfoque en el elemento.
$ files: es la variable creada y contiene el texto / nombre de archivo que se cargará.
ControlSetText: pasa la variable que tiene los nombres de archivo que se cargarán al elemento 'Editar'.
ContolClick: realiza una acción de clic en el elemento.
# 3) Uso de la línea de comandos para especificar el nombre de archivo para cargar
El mismo procedimiento se puede abordar de una manera diferente en la que el nombre de archivo se obtiene del usuario. Esto se hace usando el enfoque de línea de comandos.
En lugar de especificar directamente el nombre del archivo en AutoIT, lo pasamos en el código de Selenium como se muestra a continuación:
AutoIT Script: (Upload.exe)
|_+_|En código de selenio:
Lo especificamos como:
|_+_|En este caso, será
|_+_|Guarde el archivo creado y compílelo para convertirlo a formato ejecutable.
# 4) Uso de la función de grabación de AutoIT
Esta función solo está disponible en versiones anteriores a 3.3.14.0. Las versiones superiores a esa no admiten esta función.
Para abrir la herramienta de grabación, vaya a AutoIt3> Extras> Au3Record> Au3Record.exe
Cuando comencemos a usar esto, asegúrese siempre de anular la selección de la opción 'Grabar mouse', ya que la interacción del mouse varía para cada resolución de pantalla. Grabe siempre las pulsaciones del teclado.
Seleccione 'Hacer clic para grabar' en la herramienta y las acciones se registrarán en ella.
Cuando haya terminado de grabar, seleccione 'Hacer clic para detener' y guarde el archivo
Puede abrir el archivo .au3 guardado para ver los comandos creados para cada acción que realizó
Compile el script y conviértalo en un archivo .exe.
El archivo .exe creado se puede utilizar directamente en el código de Selenium para su ejecución de la siguiente manera:
|_+_|Conclusión
Por lo tanto, cualquier ventana emergente de Windows, como autenticación, carga de archivos o archivos abiertos, etc., se puede manejar usando AutoIT al incluir su archivo de script en Selenium.
En el próximo capítulo, aprenderemos sobre otra herramienta de terceros llamada Sikuli que se usa para automatizar aplicaciones usando la técnica de reconocimiento de imágenes.
=> Visite aquí para aprender el selenio desde cero.
Lectura recomendada
- Cómo manejar alertas / ventanas emergentes en Selenium WebDriver - Tutorial de Selenium n. ° 16
- Tutorial de Cucumber Selenium: Integración de Cucumber Java Selenium WebDriver
- Las 10 principales excepciones de selenio y cómo manejarlas (código exacto)
- Introducción a Selenium WebDriver - Tutorial de Selenium n. ° 8
- Tutorial de AutoIt: descarga, instalación y secuencia de comandos básica de AutoIt
- Tutorial de ChromeDriver Selenium: Pruebas de Selenium Webdriver en Chrome
- Más de 30 mejores tutoriales de selenio: aprenda selenio con ejemplos reales
- Oportunidad de trabajo independiente a tiempo parcial para expertos en selenio