Hoe AutoIT te gebruiken met Selenium Webdriver: voorbeeld van bestand uploaden

Inhoudsopgave:

Anonim

Wat is AutoIt?

AutoIt is een freeware scripttaal die is ontworpen voor het automatiseren van Windows GUI en algemene scripting. Het maakt gebruik van een combinatie van muisbewegingen, toetsaanslagen en manipulatie van vensterbesturing om een ​​taak te automatiseren die niet mogelijk is met selenium webdriver.

In deze AutoIt-zelfstudie leert u:

  • Waarom AutoIt gebruiken?
  • AutoIT downloaden en installeren
  • Element vinden via element-ID en script schrijven in AutoIT-editor.
  • AutoIT Upload-bestand in Selenium Webdriver

Waarom AutoIt gebruiken?

Selenium is een open source-tool die is ontworpen om webtoepassingen in verschillende browsers te automatiseren, maar om de GUI van vensters en niet-HTML-pop-ups in de toepassing te verwerken. AutoIt in Selenium is vereist omdat deze op venster gebaseerde activiteiten niet door Selenium worden afgehandeld.

Als we verder gaan in deze AutoIt-zelfstudie, zullen we leren hoe u een bestand uploadt in een selenium-webstuurprogramma met AutoIt. Hiervoor hebben we drie tools nodig.

  • Selenium Webdriver
  • AutoIT-editor en element-ID
  • Het venster dat u wilt automatiseren

AutoIT downloaden en installeren

Stap 1) : Ga naar deze link.

Stap 2) : Plaats de muisaanwijzer op 'Autoit' en 'Autoit Editor' dropdown.

Stap 3) Klik op de optie 'AutoIT' Downloads.

Stap 4) : Download "Autoit" door op de knop 'Download Autoit' te klikken.

Stap 5) : Download nu "Autoit editor" door op de knop 'Downloads' te klikken.

Stap 6): Klik op de link zoals hieronder weergegeven.

Na het downloaden krijgt u twee setup-bestanden zoals weergegeven in het onderstaande scherm, de eerste is de installatie van AutoIt versie 3 en de tweede is Scitautoit3 .

Stap 6) : Voor het installeren van AutoIT-Klik één voor één op beide AutoIT-instellingen.

Stap 7) : Na een succesvolle installatie - open AutoIT Editor.

Ga naar 'C: \ Program Files (x86) \ AutoIt3 \ SciTE'

en klik op 'SciTE.exe'-bestand, de AutoIT-editor wordt geopend zoals weergegeven in het onderstaande scherm.

Stap 8) : Opent nu element Identifier.

Ga naar 'C: \ Program Files (x86) \ AutoIt3'

En klik op het 'Au3Info.exe'-bestand, de element-ID wordt geopend zoals weergegeven in het onderstaande scherm.

Opmerking: als u klaar bent met dit element-ID, moet u het handmatig sluiten, het zal niet automatisch sluiten.

Element vinden via element-ID en script schrijven in AutoIT-editor.

Hieronder zullen we zien hoe we de AutoIt-editor kunnen gebruiken en hoe we een element in het venster van de bestandsuploader kunnen vinden via AutoIT Element Identifier (Element-ID is een tool zoals selenium IDE, identifier vind het element van de GUI van het venster of niet-HTML-pop-ups en geef het attribuut van element zoals titel , klasse , instantie ) en hoe script op AutoIT-editor te schrijven met behulp van 3-methoden.

Bijvoorbeeld: we zullen de "Schrijf ons" -pagina van guru99 gebruiken om een ​​cv (Doc-bestand) te uploaden.

Nadat we op de knop 'Bestand kiezen' op de pagina 'Schrijf ons' hebben geklikt, moeten we het AutoIT-script oproepen. De controle werd onmiddellijk overgebracht naar autoit na het klikken op 'Bestand kiezen' door de onderstaande verklaring die zorgt voor het uploaden van een deel.

Runtime.getRuntime (). Exec ("E: \\ AutoIT \\ FileUpload.exe"); 

Ten slotte, wanneer we het selenium-script uitvoeren, vult het het formulier-> cv uploaden-> formulier verzenden.

Stap 1) : Open nu element Identifier - Ga naar 'C: \ Program Files (x86) \ AutoIt3' en klik op 'Au3Info.exe' bestand, het element identifier venster opent zoals getoond in onderstaand scherm.

Stap 2) : Open nu het venster voor het uploaden van bestanden door op 'Bestand kiezen' te klikken, wat de Windows-activiteit is.

Stap 3) : Sleep de zoeker naar het "Bestandsnaam" -vakelement van het bestandsuploadervenster om de basisattributeninformatie te vinden, zoals weergegeven in het onderstaande scherm met de pijl.

We kunnen de waarde van attributen krijgen, ie title = 'Open' , class = 'Edit' en instance = '1' zoals hieronder getoond. Deze waarden worden gebruikt bij het schrijven van een AutoIT-scriptvoorbeeld, zoals uitgelegd in onderstaande stap 4.

Stap 4) : Open nu AutoIT script editor, ga naar 'C: \ Program Files (x86) \ AutoIt3 \ SciTE' en klik op 'SciTE.exe' zoals getoond in stap 7 van de 1 ste onderwerp.

Begin met het schrijven van een script om een ​​bestand te selecteren om te uploaden.

Er zijn veel methoden beschikbaar die we in een script kunnen gebruiken volgens de vereisten, maar op dit moment zullen we ons concentreren op de onderstaande methoden, aangezien deze methoden vereist zijn voor het schrijven van een script voor het uploaden van bestanden:

  1. ControlFocus ("title", "text", controlID) // Stelt de invoerfocus in op een bepaald besturingselement in een venster.
  2. ControlSetText ("titel", "tekst", controlID, "Bestandspad dat moet worden geüpload") // Stelt de tekst van een besturingselement in.
  3. ControlClick ("title", "text", controlID) // Stuurt een muisklikopdracht naar een bepaald besturingselement.

U kunt zien dat een aantal methoden wordt weergegeven, zoals weergegeven in het onderstaande scherm. Het goede kenmerk van AutoIT is dat het enigszins lijkt op Eclipse, dat u enkele van de methoden suggereert.

Hier in de AutoIT-editor hebben we de "controlefocus" -methode geselecteerd . Element-ID is al geopend en geminimaliseerd omdat het element al is geïdentificeerd in bovenstaande stap 3. We kunnen het openen door het te maximaliseren.

Nu nemen we de waarden van de element-ID voor 'ControlFocus' en 'ControlSetText'-methoden, omdat deze methoden op hetzelfde element werken, dwz het tekstvak' Bestandsnaam ', maar voor de' ControlClick'-methode moeten waarden van een ander element worden vastgelegd, dwz 'Open' knop.

Parameterwaarden voor de ControlFocus- methode:

Deze methode stelt de focus in op het tekstvak 'bestandsnaam' van het venster voor het uploaden van bestanden.

  • De titel van de eerste parameter is "Open".
  • We negeren de 2e parameter, de tekst is niet verplicht.
  • De derde parameter controlID is de combinatie van class = 'Edit' en Instance = '1', dwz. 'Bewerken1.'
    ControlFocus ("Open", "", "Edit1") // Deze methode stelt de invoerfocus in op het tekstvak 'Bestandsnaam'. 

Parameterwaarden voor de methode ControlSetText :

Deze methode wordt gebruikt om het pad van een bestand te definiëren dat we moeten uploaden in het tekstvak 'bestandsnaam'. Op een andere manier kunnen we zeggen dat deze methode wordt gebruikt om de tekst in te stellen op het invoerelement.

  • De titel van de eerste parameter is "Open".
  • We negeren de 2e parameter, de tekst is niet verplicht.
  • De derde parameter controlID is de combinatie van class = 'Edit' en Instance = '1', dwz "Edit1".
  • 4e parameter nieuwe tekst, we geven het pad door van het bestand dat we moeten uploaden.
    ControlSetText ("Open", "", "Edit1", "E: \ Resume \ resume.doc") // Deze methode voert het bestandspad van een besturingselement in. 

Na het volgen van de bovenstaande stap, sluit u de vensters (editor en element-ID) niet, maar laat u deze openstaan. U moet opnieuw het venster voor het uploaden van bestanden openen om de kenmerken van de knop 'Openen' te vinden, zoals weergegeven in stap 5 hieronder.

Stap 5) : Sleep nu de zoeker naar het "Open" -knopelement van het bestandsuploadervenster om de basiskenmerkinformatie te vinden.

Eerdere waarden (dwz attributen van het tekstvak 'Bestandsnaam') overschrijven met nieuwe waarden van de knop 'Openen'. U kunt zien dat het class-attribuut nu is gewijzigd in "button", wat voorheen "edit" was in het AutoIT-elementidentificatievenster.

We kunnen de waarde van attributen krijgen, ie title = 'Open' , class = 'Button' en instance = '1' zoals hieronder getoond. Deze waarden worden gebruikt bij het schrijven van Autoit-script, zoals hieronder wordt uitgelegd.

Parameterwaarden voor de ControlClick- methode:

Deze methode klikt op de knop 'Openen' in het venster voor het uploaden van bestanden.

  • De titel van de eerste parameter is "Open".
  • We negeren de 2e parameter; de tekst is niet vereist.
  • De derde parameter controlID is de combinatie van klasse en instantie, dwz "Button1".
ControlClick ("Open", "", "Button1") // Bij deze methode klikt u op de knop 'Openen' van de bestandsuploader.

Stap 6) : U kunt in het onderstaande scherm zien dat het AutoIT-script is voltooid om de bestandsuploader af te handelen. Nu kunt u de element-ID sluiten en het script opslaan als "FileUpload" op de opgegeven locatie (E: \ AutoIT).

Nu kunt u dit script niet rechtstreeks uitvoeren, u moet dit script compileren.

Voor het compileren van dit script heb je twee opties " compileer script x64 " en " compileer script x86 ", als je een Windows 32-bit machine hebt, ga je met " compileer script x86" en voor Windows 64-bit machine ga je met " compileer script x64 . "

Stap 7): 'FileUpload exe'- bestand gegenereerd na compilatie, kunt u zien in het onderstaande scherm. Nu kunnen we dit bestand gebruiken in het Selenium-webstuurprogrammascript.

Nu zullen we dit AutoIT-script gebruiken in de Selenium-webdriver. Kijk hieronder voor output.

AutoIT Upload-bestand in Selenium Webdriver

In het Selenium-script vinden we de elementen van het formulier en vullen we de gegevens in elk element naar wens in en uploaden we het 'resume.doc'-bestand door het AutoIT exe-bestand uit te voeren dat is gegenereerd met het AutoIT-script en vervolgens kunnen we het formulier indienen in het Selenium AutoIt-script.

  • Open Eclipse en begin met het schrijven van code.
  • Wanneer selenium op de knop Bestand kiezen klikt, wordt het venster voor het uploaden van bestanden geopend.
  • Dan moeten we het AutoIT-script oproepen, de besturing wordt onmiddellijk overgebracht naar AutoIT om een ​​bestand te uploaden en vervolgens de besturing terug te sturen naar selenium, zoals hieronder wordt weergegeven.

Stap 1) : Ontwikkel seleniumscript in eclips.

  • Met de runtime- klasse kan het script communiceren met de omgeving waarin het script wordt uitgevoerd.
  • getRuntime () haalt de huidige runtime op die aan dit proces is gekoppeld.
  • exec () -methoden voeren het AutoIT-script (FileUpload.exe) uit.
Runtime.getRuntime (). Exec ("E: \\ AutoIT \\ FileUpload.exe");

bovenstaande regel zal AutoIT-script in selenium oproepen en bestand uploaden.

Stap 2) : Voer het Selenium-script uit in Eclipse.

importjava.io.IOException;import org.openqa.selenium.By;importeer org.openqa.selenium.WebDriver;importeer org.openqa.selenium.firefox.FirefoxDriver;openbare klasse FileUpload {public static void main (String [] args) gooit IOException {WebDriver-stuurprogramma = nieuwe FirefoxDriver ();driver.get ("http://demo.guru99.com/test/autoit.html");driver.findElement (By.id ("postjob")). click ();driver.findElement (By.id ("input_3")). sendKeys ("Gaurav");driver.findElement (By.id ("id_4")). sendKeys (" Dit e-mailadres is beschermd tegen spambots. JavaScript moet ingeschakeld zijn om het te kunnen bekijken.");driver.findElement (By.id ("input_4")). klik ();// onder regel voer het AutoIT-script uit.Runtime.getRuntime (). Exec ("E: \\ AutoIT \\ FileUpload.exe");driver.findElement (By.id ("input_6")). sendKeys ("AutoIT in Selenium");driver.findElement (By.id ("input_2")). click ();driver.close ();​​

Stap 3) : Controleer de uitvoer, het resume.doc-bestand is geüpload en het bedankbericht wordt weergegeven.

Gevolgtrekking:

  • Element-ID en AutoIT-editor gedownload en geïnstalleerd.
  • De site geopend waarop de operatie moet worden uitgevoerd.
  • Element-ID identificeert de elementen van het venster voor het uploaden van bestanden.
  • AutoIT-script in de editor voorbereid met behulp van Element-ID.
  • Autoit-script wordt gebruikt in selenium-webstuurprogrammascript.
  • Het seleniumscript uitgevoerd.
  • Uitvoer: het bestand geüpload.

Dit artikel is bijgedragen door Gaurav Nigam