how handle windows pop up selenium using autoit
Aquest tutorial explica diversos mètodes per manejar les finestres emergents de Windows en seleni sempre que l'automatització surt de l'abast mitjançant l'eina AutoIT:
AutoIT és una eina de tercers que ofereix a Selenium un cop de mà per gestionar les finestres emergents com les finestres emergents d'autenticació de Windows, aplicacions Flash, aplicacions d'escriptori, etc.
El seleni es limita a automatitzar només aplicacions web. En alguns casos, pot aparèixer una finestra emergent de Windows a l’aplicació que Selenium no pot gestionar. Per tal de gestionar aquests escenaris, AutoIT dóna una mà per ajudar-se a automatitzar les aplicacions emergents i d'escriptori de Windows.
=> Visiteu aquí per veure la sèrie de formació Selenium per a tothom.
Què aprendreu:
Informació general de l'eina AutoIT
Aquí teniu un vídeo tutorial:
Gestioneu la finestra emergent del Windows mitjançant AutoIT
AutoIT és una eina de tercers que s’utilitza per gestionar aplicacions basades en Windows. El llenguatge de script utilitzat s’anomena VBScript.AutoIt també és un programari gratuït. Utilitza una combinació demoviment del ratolí i cops de teclat per automatitzar les accions que el controlador web de seleni no pot fer.
AutoIt s’utilitza en format .exe perquè es pugui utilitzar a l’escript de Selenium Automation.
Vegem un exemple, on necessitaríem penjar un fitxer a l'aplicació.
L’escenari és carregar una foto de perfil a LinkedIn. Els passos de prova per a aquest escenari són:
- Introduïu l'URL
- Introduïu un nom d'usuari, una contrasenya vàlids i inicieu la sessió.
- Feu clic a la icona de càrrega del perfil.
- Apareix el menú emergent de Windows on s’introdueix el camí per penjar una imatge.
Fins al pas 3, Selenium Automation pot gestionar-ho. Quan apareix el Windows emergent, s'utilitza l'script AutoIT per automatitzar aquesta part.
Ara, fem una ullada a com automatitzar les accions a la finestra emergent de Windows?
Es pot gestionar de 4 maneres diferents.
- Utilitzar Ordres de Windows per carregar un fitxer concret.
- Utilització d’ordres de control per carregar un fitxer.
- Utilitzant l'argument de línia d'ordres per especificar el nom de fitxer que voleu penjar.
- Utilitzant l'eina de registre AutoIT.
Tots els scripts es creen mitjançant AutoItScriptEditor, que està disponible al paquet de carpetes AutoIt.
Aneu a AutoIt3> SciTE> SciTE.exe i obriu l'aplicació ScriptEditor.
# 1) Ús de les ordres de Windows
Tenim diversos conjunts de funcions a AutoIt.
Podeu fer una ullada aquí. Ara, per automatitzar les accions emergents de Windows, primer analitzem les accions. Això inclou:
- Establiu el focus a la finestra actual.
- Introduïu el camí del nom del fitxer que voleu penjar al quadre FileName.
- Feu clic al botó Obre o premeu Retorn al teclat.
Comprenguem detalladament els punts anteriors:
- Establiu el focus a la finestra actual
WinWaitActive : Estableix el focus del cursor al nom de la finestra especificat. En aquest cas, el títol de la finestra és 'Obert'. Per tant, especifiquem l’ordre comWinWaitActive ('Obert').
Tingueu en compte que el mateix títol de Windows difereix per a cada navegador.
Digues, per a Firefox , és 'Càrrega de fitxers', - Així serà l'ordre AutoITWinWaitActive ('Càrrega de fitxers').
Per a IE, és 'Fitxer per carregar': així serà l'ordre AutoITWinWaitActive ('Fitxer per carregar')
Per a Chrome , és 'Obert': així serà l'ordre AutoITWinWaitActive ('Obert')
Heu d'especificar el títol de la finestra en funció del navegador que utilitzeu per a l'automatització.
2. Introduïu el camí del nom del fitxer que voleu penjar al quadre FileName
Envia - envia cops de teclat o, en altres paraules, simula accions de teclat.
És possible que les accions estiguin pressionant la tecla Retorn, la tecla Maj, etc. O escrivint una cadena, un número, etc. En aquest exemple, he d'escriure el nom del fitxer, de manera que utilitzo l'ordre per introduir el nom del fitxer a la finestra. -Envia ('D: passport.jpg')
3. Feu clic al botó Obre o premeu Retorn al teclat
Envia ({ENTER})- envia la tecla ENTER a la finestra, que al seu torn completa l'acció de càrrega.
proves de programari preguntes i respostes d’entrevistes
Deseu l'script creat en qualsevol ubicació. Es desarà en format .au3. Un cop desat, feu clic amb el botó dret al fitxer .au3 i compileu-lo.
Després de la compilació, es converteix al format .exe (format executable). Aquest fitxer és el que fem servir a l’escriptura Selenium.
Un cop creat el fitxer .exe, podeu utilitzar el fitxer de l’escript de Selenium Automation per executar-hi les ordres
Runtime.getRuntime.exec ('especifiqueu aquí el nom de fitxer autoIt exe')
# 2) Ús d’ordres de control
Tenim certes ordres de control a AutoIT per realitzar accions. Aquí teniu la llista d’ordres de control a AutoIT.
Vegem com automatitzar el mateix escenari de càrrega de fitxers mitjançant aquestes ordres de control d’AutoIT.
Ara, per ordre per automatitzar la finestra emergent de Windows, s'han de realitzar les accions següents:
- Establiu el focus a la finestra actual.
- Introduïu el camí del nom del fitxer que voleu penjar al quadre FileName.
- Feu clic al botó Obre o premeu Retorn al teclat.
Anem a entendre els punts anteriors en detalls:
- Establiu el focus a la finestra actual
ControlFocus:Estableix l'enfocament a l'element especificat. En aquest cas, fixem el focus al quadre de text d’edició.
Quan mireu la seva descripció, podeu veure que requereix un o més paràmetres. Podem passar aquests paràmetres mitjançant l’eina d’Informació de Windows d’AutoIt.
Anem obriu l'aplicació AutoIT de la manera següent:
L'eina d'informació de Windows s'obre com es mostra a continuació:
Aquesta eina s'utilitza per inspeccionar elements de l'aplicació / finestra emergent de Windows.
Per obtenir diversos atributs de cada element a la finestra emergent de Windows, arrossegueu la icona ‘Finder’ de l’eina d’informació de Windows i feu clic a l’element per mostrar les seves propietats tal com es mostra a continuació.
Les seves propietats es mostren a l'eina tal com es mostra.
Per al quadre FileName, les propietats i els seus valors corresponents són:
- Títol: obert
- ClassName: edita
- Instància - 1
Mitjançant aquestes propietats, podem passar els paràmetres de l’ordre control.
Ara, per establir el focus al quadre FileName, anomenem l’ordre ‘ControlFocus’ de la manera següent:
- Sintaxi: ControlFocus ('títol', 'text', controlID)
- El 'títol' correspon al títol que es mostra a l'eina.
- L'identificador de control és la combinació de ClassName + Instance a l'eina
ControlFocus ('Obert', '', 'Edita1')
On,
- Obert: és el títol
- Edit1: és el controlID (controlID = ClassName + instància)
2. Introduïu el camí del nom del fitxer que voleu penjar al quadre FileName
ControlSetText: escriu el text a l'element.
- Sintaxi: ControlSetText ('title', 'text', controlID, 'text nou' [, flag = 0])
En el nostre cas, tenim el nom del fitxer al quadre de text.
ControlSetText ('Obert', '', 'Edita1', 'D: passport.jpg')
On,
- Obert: és el títol
- Edit1: és el controlID (controlID = ClassName + instància)
- D: passport.jpg: és el nom de fitxer que voleu penjar
3. Feu clic al botó Obre o premeu Retorn al teclat
ControlClick - realitza una acció de clic a l'element. En aquest exemple, fem clic al botó 'Obre'
- Sintaxi: ControlClick ('títol', 'text', ID de control [, botó = 'esquerra' [, clics = 1 [, x [, y]]]])
En el nostre cas, hauríem de fer clic al botó 'Obrir' del menú emergent de Windows.
ControlClick ('Obrir', '', 'Botó1')
On,
- Obert: és el títol
- Button1: és el controlID (controlID = ClassName + instància)
Anomenem el fitxer .exe des del codi Selenium mitjançant l’ordre-Runtime.getRuntime.exec ('especifiqueu aquí el nom de fitxer autoIt exe')
NOTA: Quan hem de carregar diversos fitxers en una única instància, podem especificar tots els noms de fitxer d’una variable i passar el nom de la variable a l’ordre.
ControlFocus: estableix l'enfocament a l'element.
$ files: és la variable creada i conté el text / nom de fitxer que es carregarà.
ControlSetText: passa la variable que té els noms dels fitxers que es carregaran a l'element 'Edita'.
ContolClick: realitza una acció de clic a l'element.
# 3) Utilització de la línia d'ordres per especificar el nom del fitxer a carregar
Es pot abordar el mateix procediment d'una manera diferent en què el nom del fitxer s'obté de l'usuari. Això es fa mitjançant l'enfocament de línia d'ordres.
En lloc d’especificar directament el nom del fitxer a AutoIT, el passem al codi Selenium de la manera següent:
Script AutoIT: (Upload.exe)
ControlFocus(“Open”,””,”Edit1”) ControlSetText(“Open”,””,”Edit1”,$cmdLine[1]) ControlClick(“Open”,””,”Button1”)
Codi de seleni:
Ho especifiquem com:
Runtime.getRuntime.exec(“Path of .exe file”+””+ “FileToUpload”)
En aquest cas, ho serà
Runtime.getRuntime.exec(“D:automationUpload.exe”+””+ “D:automationimage.jpg”)
Deseu el fitxer creat i compileu-lo per convertir-lo al format executable.
# 4) Ús de la funció de registre d’AutoIT
Aquesta característica només està disponible en versions inferiors a 3.3.14.0. Les versions superiors a aquesta no admeten aquesta funció.
Per obrir l'eina de registre, aneu a AutoIt3> Extres> Au3Record> Au3Record.exe
Quan comencem a utilitzar-lo, assegureu-vos sempre de desseleccionar l’opció ‘Grava el ratolí’, ja que la interacció del ratolí varia per a cada resolució de pantalla. Enregistreu sempre els traços del teclat.
Seleccioneu 'Feu clic per gravar' a l'eina i s'hi enregistraran les accions.
Quan hàgiu acabat de gravar, seleccioneu 'Feu clic per aturar' i deseu el fitxer
Podeu obrir el fitxer .au3 desat per veure les ordres creades per a cada acció que heu realitzat
Compileu l'script i converteu-lo al fitxer .exe.
El fitxer .exe creat es pot utilitzar directament al codi Selenium per executar-lo de la manera següent:
Runtime.getRuntime.exec(“D:automationRecord.exe”)
Conclusió
Per tant, qualsevol finestra emergent de Windows, com ara autenticació, pujada de fitxers o fitxers oberts, etc., es pot gestionar mitjançant AutoIT incloent el fitxer de seqüències a Selenium.
Al següent capítol, coneixerem una altra eina de tercers anomenada Sikuli, que s’utilitza per automatitzar aplicacions mitjançant la tècnica de reconeixement d’imatges.
=> Visiteu aquí per aprendre el seleni des de zero.
Lectura recomanada
- Com gestionar les alertes / finestres emergents a Selenium WebDriver - Selenium Tutorial # 16
- Tutorial de Cogombre Selenium: Integració de Cogombre Java Selenium WebDriver
- Top 10 excepcions de seleni i com gestionar-les (codi exacte)
- Introducció a Selenium WebDriver - Tutorial Selenium # 8
- Tutorial d'AutoIt: descàrrega, instal·lació i script bàsic d'AutoIt d'AutoIt
- Tutorial de ChromeDriver Selenium: proves de Selenium Webdriver a Chrome
- 30+ millors tutorials sobre seleni: apreneu el seleni amb exemples reals
- Oportunitat de treball autònom a temps parcial per a experts en seleni