how handle windows pop up selenium using autoit
Denna handledning förklarar olika metoder för att hantera Windows Pop Up i Selen när automatisering går utanför räckvidden med AutoIT-verktyget:
AutoIT är ett verktyg från tredje part som ger Selenium en hjälpande hand för att hantera popup-fönster som Windows Authentication pop up, Flash-applikationer, Desktop-applikationer och så vidare.
Selen är endast begränsat till att automatisera webbapplikationer. I vissa fall kan en Windows-popup dyka upp i applikationen som Selenium inte kan hantera. För att hantera sådana scenarier ger AutoIT en hjälpande hand där den tar hand om att automatisera Windows pop-up- och skrivbordsapplikationer.
=> Besök här för att se Selenium Training Series för alla.
Vad du kommer att lära dig:
Översikt över AutoIT Tool
Här är en videohandledning:
Hantera Windows Pop Up med AutoIT
AutoIT är ett verktyg från tredje part som används för att hantera Windows-baserade applikationer. Skriptspråket som används kallas VBScript.AutoIt är också ett freeware. Den använder en kombination avmusrörelse och tangentbordsslag för att automatisera de åtgärder som inte är möjliga att göra med selen webdriver.
AutoIt används i .exe-format så att det kan användas i Selenium Automation-skriptet.
Låt oss titta på en exempel, där vi skulle behöva ladda upp en fil till ansökan.
Scenariot är att ladda upp en profilbild på LinkedIn. Teststegen för detta scenario är:
- Skriv in URL
- Ange ett giltigt användarnamn, lösenord och logga in.
- Klicka på profilöverföringsikonen.
- Windows pop-up visas där sökvägen för att ladda upp en bild anges.
Fram till steg 3 kan Selenium Automation hantera det. När Windows dyker upp visas AutoIT-skriptet för att automatisera den delen.
Låt oss nu titta på hur man automatiserar åtgärder i Windows dyker upp?
Detta kan hanteras på fyra olika sätt.
- Använda Windows Commands för att ladda upp en viss fil.
- Använd kontrollkommandon för att ladda upp en fil.
- Använd kommandoradsargumentet för att ange det filnamn som ska laddas upp.
- Använda AutoIT-inspelningsverktyget.
Alla skript skapas med AutoItScriptEditor, som är tillgängligt i mapppaketet AutoIt.
Navigera till AutoIt3> SciTE> SciTE.exe och öppna programmet ScriptEditor.
# 1) Använda Windows-kommandon
Vi har olika funktioner i AutoIt.
Du kan titta här. Nu för att automatisera Windows pop-up-åtgärder, kan vi först analysera åtgärderna. Dessa inkluderar:
- Ställ in fokus på det aktuella fönstret.
- Ange sökvägen till filnamnet som ska laddas upp i rutan FileName.
- Klicka på knappen Öppna eller tryck på Enter på tangentbordet.
Låt oss förstå ovanstående punkter i detalj:
- Ställ in fokus på det aktuella fönstret
WinWaitActive : Ställer in markörens fokus till det angivna fönstrets namn. I det här fallet är fönstrets titel 'Öppna'. Så vi anger kommandot somWinWaitActive (“Öppna”).
Observera att samma Windows-titel skiljer sig åt för varje webbläsare.
Säga, för Firefox , det är ”File Upload”, - Så kommer AutoIT-kommandot att varaWinWaitActive (“File Upload”).
För IE, det är 'File to Upload' - Så kommer AutoIT-kommandot att varaWinWaitActive (“Fil att ladda upp”)
För Chrome , det är 'Öppet' - Så kommer AutoIT-kommandot att varaWinWaitActive (“Öppna”)
Du bör ange fönstertiteln baserat på webbläsaren som du använder för automatisering.
två. Ange sökvägen till filnamnet som ska laddas upp i rutan FileName
Skicka - skickar tangentbordsslag eller med andra ord, det simulerar tangentbordsåtgärder.
Åtgärder kan trycka på Enter-tangenten, Skift-tangenten, så vidare. ELLER att skriva en sträng, nummer osv. I det här exemplet måste jag skriva in filnamnet, så jag använder kommandot för att ange filnamnet i fönstret. -Skicka (“D: passport.jpg”)
3. Klicka på knappen Öppna eller tryck på Enter på tangentbordet
Skicka ({ENTER})- skickar ENTER-tangenttryckning till fönstret, vilket i sin tur fullbordar åtgärden för uppladdning.
verktyg för prestandatestning för webbapplikationer
Spara skriptet som skapats på vilken plats som helst. Den sparas i .au3-format. När du har sparat högerklickar du på .au3-filen och kompilerar den.
Efter sammanställning konverteras den till .exe-format (körbart format). Den här filen är vad vi använder i Selenium-skriptet.
När .exe-filen har skapats kan du använda filen i Selenium Automation-skriptet för att köra kommandona i den
Runtime.getRuntime.exec (“ange autoIt exe filnamn här”)
# 2) Använda kontrollkommandon
Vi har vissa kontrollkommandon i AutoIT för att utföra åtgärder. Här är listan över kontrollkommandon i AutoIT.
Låt oss se hur man automatiserar samma filöverföringsscenario med hjälp av dessa kontrollkommandon för AutoIT.
Nu, i ordning För att automatisera Windows pop-up ska följande åtgärder utföras:
- Ställ in fokus på det aktuella fönstret.
- Ange sökvägen till filnamnet som ska laddas upp i rutan FileName.
- Klicka på knappen Öppna eller tryck på Enter på tangentbordet.
Låt oss förstå detaljerna ovan:
- Ställ in fokus på det aktuella fönstret
ControlFocus:Ställer in fokus på det angivna elementet. I det här fallet sätter vi fokus på redigeringstextrutan.
När du tittar på dess beskrivning kan du se att den kräver en eller flera parametrar. Vi kan skicka dessa parametrar med hjälp av Windows Info-verktyget i AutoIt.
Låt oss öppna AutoIT-applikationen enligt nedan:
Windows Info-verktyget öppnas enligt nedan:
Detta verktyg används för att inspektera element i Windows-applikationen / pop-up.
För att få olika attribut för varje element i Windows dyker upp, drar du ikonen 'Finder' i Windows Info Tool och klickar på elementet för att visa dess egenskaper enligt nedan.
Vi har dess egenskaper som visas i verktyget.
För rutan Filnamn är egenskaperna och dess motsvarande värden:
- Titel - Öppen
- ClassName - Redigera
- Instans - 1
Med hjälp av dessa egenskaper kan vi skicka parametrarna för kontrollkommandot.
För att ställa in fokus på rutan FileName, kallar vi kommandot 'ControlFocus' enligt nedan:
- Syntax: ControlFocus ('titel', 'text', controlID)
- ”Titel” motsvarar titeln som visas i verktyget.
- Kontroll-Id är kombinationen av ClassName + Instance i verktyget
ControlFocus ('Öppna', '', 'Redigera1')
Var,
- Öppen - är titeln
- Edit1 - är controlID (controlID = ClassName + Instance)
två. Ange sökvägen till filnamnet som ska laddas upp i rutan FileName
ControlSetText - skriver in texten till elementet.
- Syntax: ControlSetText (“title”, “text”, controlID, “new text” (, flag = 0))
I vårt fall har vi filnamnet i textrutan.
ControlSetText ('Öppna', '', 'Redigera1', 'D: passport.jpg')
Var,
- Öppen - är titeln
- Edit1 - är controlID (controlID = ClassName + Instance)
- D: passport.jpg - är filnamnet som ska laddas upp
3. Klicka på knappen Öppna eller tryck på Enter på tangentbordet
ControlClick - utför en klickåtgärd på elementet. I det här exemplet utför vi klick på knappen 'Öppna'
- Syntax: ControlClick (“title”, “text”, controlID (, button = “left” (, click = 1 (, x (, y)))))
I vårt fall ska den klicka på knappen 'Öppna' i Windows pop-up.
ControlClick ('Öppna', '', 'Knapp1')
Var,
- Öppen - är titeln
- Button1 - är controlID (controlID = ClassName + Instance)
Vi kallar .exe-filen från Selen-kod med kommandot-Runtime.getRuntime.exec (“ange autoIt exe filnamn här”)
NOTERA: När vi måste ladda upp flera filer i en enda instans kan vi ange alla filnamn i en variabel och skicka variabelnamnet i kommandot.
ControlFocus - ställer in fokus på elementet.
$ filer - är den variabel som skapats och den innehåller texten / filnamnet som ska laddas upp.
ControlSetText - skickar variabeln som har filnamnen som ska laddas upp till elementet 'Redigera'.
ContolClick - utför en klickåtgärd på elementet.
# 3) Använd kommandoraden för att specificera filnamnet som ska laddas upp
Samma procedur kan närma sig på ett annat sätt där filnamnet erhålls från användaren. Detta görs med kommandoradsmetoden.
Istället för att direkt ange filnamnet i AutoIT skickar vi det i Selen-koden enligt nedan:
AutoIT-skript: (Upload.exe)
ControlFocus(“Open”,””,”Edit1”) ControlSetText(“Open”,””,”Edit1”,$cmdLine(1)) ControlClick(“Open”,””,”Button1”)
I selenkod:
Vi anger det som:
Runtime.getRuntime.exec(“Path of .exe file”+””+ “FileToUpload”)
I det här fallet kommer det att vara
Runtime.getRuntime.exec(“D:automationUpload.exe”+””+ “D:automationimage.jpg”)
Spara den skapade filen och kompilera den för att konvertera den till körbart format.
# 4) Använda inspelningsfunktionen i AutoIT
Denna funktion är endast tillgänglig i versioner under 3.3.14.0. Fler versioner än det stöder inte den här funktionen.
För att öppna inspelningsverktyget, navigera till AutoIt3> Extra> Au3Record> Au3Record.exe
När vi börjar använda detta, se alltid till att avmarkera alternativet 'Spela in mus' eftersom musinteraktionen varierar för varje skärmupplösning. Spela alltid in tangentbordsslag.
Välj 'Klicka för att spela in' i verktyget och åtgärderna registreras i det.
När du är klar med inspelningen, välj “Klicka för att stoppa” och spara filen
Du kan öppna .au3-filen som sparats för att se kommandona som skapats för varje åtgärd som du utförde
Kompilera skriptet och konvertera det till .exe-fil.
.Exe-filen som skapas kan användas direkt i Selenium-koden för körning enligt nedan:
Runtime.getRuntime.exec(“D:automationRecord.exe”)
Slutsats
Således kan alla Windows-popuper som autentisering eller filöverföring eller öppen fil etc. hanteras med AutoIT genom att inkludera dess skriptfil i Selenium.
I nästa kapitel kommer vi att lära oss om ett annat verktyg från tredje part som heter Sikuli som används för att automatisera applikationer med hjälp av bildigenkänningstekniken.
=> Besök här för att lära dig selen från repor.
Rekommenderad läsning
- Hur man hanterar varningar / popup-fönster i Selen WebDriver - Selen Tutorial # 16
- Gurkselen-handledning: Gurka Java Selen WebDriver-integration
- Topp 10 selenundantag och hur man hanterar dessa (exakt kod)
- Introduktion till Selen WebDriver - Selen Tutorial # 8
- AutoIt-handledning - AutoIt-nedladdning, installation och grundläggande AutoIt-skript
- ChromeDriver Selen Tutorial: Selen Webdriver Tests på Chrome
- 30+ bästa selen-självstudier: Lär dig selen med riktiga exempel
- Deltidsfrilansande jobbmöjlighet för selenexperter