Sikuli Tutorial for Selenium Automaatio
Missรค Sikuli on mukana Selenium?
Sikuli on avoimen lรคhdekoodin GUI-pohjainen testiautomaatiotyรถkalu. Sitรค kรคytetรครคn pรครคasiassa vuorovaikutukseen web-sivujen elementtien kanssa ja ikkunoihin perustuvien ponnahdusikkunoiden kรคsittelyyn. Sikuli kรคyttรครค "Image Recognition"- ja "Control GUI" -tekniikkaa vuorovaikutuksessa web-sivujen ja ikkunoiden ponnahdusikkunoiden kanssa. Sikulissa kaikki verkkoelementit otetaan kuvina ja tallennetaan projektin sisรครคn.
Kuinka kรคyttรครค Sikulia Selenium Web-ohjain
Sikuli voidaan integroida seleeni-webdriveriin Sikuli JAR -tiedoston avulla.
Alla oleva sekvenssi on luettelo vaiheista, joilla Sikuli mรครคritetรครคn seleeni-webdriverin kanssa.
Vaihe 1) Lataa Sikuli JAR -tiedosto alla olevasta URL-osoitteesta ja pura ZIP-tiedoston sisรคltรถ kansioon.
Vaihe 2) Luo uusi JAVA-projekti sisรครคn Eclipse ja lisรครค JAR-tiedosto rakennuspolkuun sekรค seleenipurkkitiedostot napsauttamalla projektia hiiren kakkospainikkeella -> Rakennapolku -> Mรครคritรค rakennuspolku
Kun olet lisรคnnyt JAR-tiedoston projektin rakennuspolkuun, voit kรคyttรครค Sikulin tarjoamia luokkia.
Nรคytรถn luokka Sikulissa
Nรคyttรถluokka on perusluokat kaikille Sikulin tarjoamille menetelmille. Nรคyttรถluokka sisรคltรครค ennalta mรครคritetyt menetelmรคt kaikille yleisesti suoritetuille toiminnoille nรคyttรถelementeillรค, kuten napsautus, kaksoisnapsauttaminen, syรถtteen antaminen tekstiruutuun, hiiri jne. Alla on luettelo Screen-luokan tarjoamista yleisesti kรคytetyistรค menetelmistรค.
| Menetelmรค | Tuotetiedot | Syntaksi |
|---|---|---|
| Napauta | Tรคllรค menetelmรคllรค napsautetaan elementtiรค nรคytรถllรค kรคyttรคmรคllรค parametrina kuvan nimeรค. | Nรคyttรถ s = uusi Nรคyttรถ();
s.click("QA.png"); |
| doubleClick | Tรคtรค menetelmรครค kรคytetรครคn elementin kaksoisnapsautukseen. Se hyvรคksyy kuvan nimen parametrina. | Nรคyttรถ s = uusi Nรคyttรถ();
s.doubleClick("QA.png"); |
| Tyyppi | Tรคtรค menetelmรครค kรคytetรครคn syรถttรคmรครคn elementille arvo. Se hyvรคksyy parametreiksi lรคhetettรคvรคn kuvan nimen ja tekstin. |
s.type("QA.png","TEKSTI"); |
| Hรคilyรค | Tรคtรค menetelmรครค kรคytetรครคn viemรครคn hiiri elementin pรครคlle. Se hyvรคksyy kuvan nimen parametrina. |
s.hover("QA.png"); |
| Lรถytรครค | Tรคtรค menetelmรครค kรคytetรครคn tietyn elementin etsimiseen nรคytรถltรค. Se hyvรคksyy kuvan nimen parametrina. |
s.find("QA.png"); |
Malliluokka Sikulissa
Kuvioluokkaa kรคytetรครคn yhdistรคmรครคn kuvatiedosto lisรคmรครคritteillรค elementin yksilรถimiseksi. Se ottaa kuvan polun parametrina.
Pattern p = uusi kuvio ("Kuvan polku");
Seuraavat ovat Pattern-luokan yleisimmin kรคytetyt menetelmรคt.
| Menetelmรค | Tuotetiedot | Syntaksi |
|---|---|---|
| getFileName | Palauttaa Pattern-objektin sisรคltรคmรคn tiedostonimen. |
Pattern p = uusi kuvio ("D:\Demo\QA.png"); Merkkijono tiedostonimi = p.getFileName(); |
| samankaltainen | Tรคmรค menetelmรค palauttaa uuden Pattern-objektin, jonka samankaltaisuus on asetettu mรครคritettyyn arvoon. Se hyvรคksyy parametriksi samankaltaisuusarvon vรคlillรค 0 - 1. Sikuli etsii kaikki elementit, jotka kuuluvat mรครคritetylle samankaltaisuusalueelle ja palauttaa uuden kuvioobjektin. |
Kuvio p1 = p.similar(0.7f); |
| Tarkka | Tรคmรค menetelmรค palauttaa uuden malliobjektin, jonka samankaltaisuus on asetettu arvoon 1. Se etsii vain mรครคritetyn elementin tรคsmรคllistรค vastaavuutta. |
Kuvio p1 = p.tarkka(); |
Koodiesimerkki tiedoston lataamiseen Sikulilla
Alla oleva koodi selittรครค Sikulin kรคytรถn tiedostojen lataamiseen Firefox.
package com.sikuli.demo;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.sikuli.script.FindFailed;
import org.sikuli.script.Pattern;
import org.sikuli.script.Screen;
import org.openqa.selenium.chrome.ChromeDriver;
public class SikuliDemo {
public static void main(String[] args) throws FindFailed {
System.setProperty("webdriver.chrome.driver", "D:\\chromedriver.exe");
String filepath = "D:\\Guru99Demo\\Files\\";
String inputFilePath = "D:\\Guru99Demo\\Files\\";
Screen s = new Screen();
Pattern fileInputTextBox = new Pattern(filepath + "FileTextBox.PNG");
Pattern openButton = new Pattern(filepath + "OpenButton.PNG");
WebDriver driver;
// Open Chrome browser
driver = new ChromeDriver();
driver.get("https://demo.guru99.com/test/image_upload/index.php");
// Click on Browse button and handle windows pop up using Sikuli
driver.findElement(By.xpath(".//*[@id='photoimg']")).click();
s.wait(fileInputTextBox, 20);
s.type(fileInputTextBox, inputFilePath + "Test.docx");
s.click(openButton);
// Close the browser
driver.close();
}
}
Koodin selitys:
Vaihe 1) Ensimmรคinen lause sisรคltรครค ohjaimen suoritettavan polun asettamisen kromille.
System.setProperty("webdriver.chrome.driver", "D:\\ chromedriver.exe");
Vaihe 2) Kรคytรค nรคytรถnkaappaustyรถkalua, kuten Snipping Tool ottaaksesi kuvakaappauksia Windowsin ponnahdusikkunasta 'FileTextBox' ja 'Avaa'-painike.
Tรคltรค kuvakaappauksen pitรคisi nรคyttรครค: -
Windowsin tiedostojen syรถttรถtekstiruudun ja avauspainikkeen kuvat tallennetaan 'FileTextiinBox.PNG ja OpenButton.PNG.
Sikuli kรคyttรครค kuvantunnistustekniikkaa ruudun elementtien tunnistamiseen. Se lรถytรครค elementtejรค nรคytรถltรค pelkรคstรครคn niiden kuvien perusteella.
Esimerkki: Jos haluat automatisoida muistilehtiรถn avaamisen, sinun on tallennettava muistilehtiรถn tyรถpรถydรคn kuvakkeen kuva PNG-tiedostoon ja suoritettava sitรค napsauttamalla.
Meidรคn tapauksessamme se tunnistaa tiedoston syรถttรถtekstiruudun ja avaa painikkeen Windows ponnahdusikkuna tallennettujen kuvien avulla. Jos nรคytรถn resoluutio muuttuu kuvankaappauksesta testiskriptin suorittamiseen, Sikulin kรคyttรคytyminen olisi epรคjohdonmukaista. Siksi on aina suositeltavaa suorittaa testiskripti samalla resoluutiolla, jolla kuvat on otettu. Kuvien pikselikoon muutos johtaa siihen, ettรค Sikuli heittรครค FindFailed-poikkeuksen.
Vaihe 3) Seuraavat lauseet sisรคltรคvรคt objektien luomisen Screen- ja Pattern-luokille. Luo uusi nรคyttรถobjekti. Aseta Pattern-objektin parametriksi ladattavan tiedoston polku.
Screen s = new Screen(); Pattern fileInputTextBox = new Pattern(filepath + "FileTextBox.PNG"); Pattern openButton = new Pattern(filepath + "OpenButton.PNG");
Vaihe 4) Alla olevat lausunnot koskevat Chrome-selaimen avaamista URL-osoitteella: https://demo.guru99.com/test/image_upload/index.php
driver = new ChromeDriver();
driver.get("https://demo.guru99.com/test/image_upload/index.php");
Yllรค oleva URL-osoite on demosovellus, joka osoittaa tiedostojen lataustoiminnon.
Vaihe 5) Napsauta Valitse tiedosto -painiketta kรคyttรคmรคllรค alla olevaa lauseketta
driver.findElement(By.xpath(".//*[@id='photoimg']")).click();
Vaihe 6) Odota, ettรค ikkunan ponnahdusikkuna tulee nรคkyviin. Odotusmenetelmรครค kรคytetรครคn ikkunoiden avaamiseen liittyvรคn viiveen kรคsittelemiseen selauspainikkeen painamisen jรคlkeen.
s.wait(fileInputTextBox, 20);
Vaihe 7) Kirjoita tiedoston polku syรถttรถtiedoston tekstiruutuun ja napsauta Avaa-painiketta
s.type(fileInputTextBox, inputFilePath + "Test.docx"); s.click(openButton);
Vaihe 8) Sulje selain
driver.close();
lรคhtรถ:
Aluksi komentosarja avaa Chrome-selaimen
Napsauttamalla 'Valitse tiedosto' -painiketta Windows-tiedoston ponnahdusikkuna tulee nรคkyviin. Syรถttรครค tiedot File Input -tekstiruutuun ja napsauttaa 'Avaa'-painiketta
Alla oleva nรคyttรถ tulee nรคkyviin, kun tiedoston lataus on valmis ja selain suljetaan
Yhteenveto
Sikulia kรคytetรครคn helposti web-sivujen flash-objektien ja ikkunoiden ponnahdusikkunoiden kรคsittelyyn. Sikuli on paras kรคyttรครค, kun kรคyttรถliittymรคn elementit eivรคt vaihda usein. Tรคmรคn haitan vuoksi Sikuli on automaatiotestauksen nรคkรถkulmasta vรคhemmรคn etusijalla muihin viitekehykseen verrattuna, kuten Robot ja AutoIT.







