Sikuli õpetus Selenium Automaatika
Milles Sikuli on Selenium?
Sikuli on avatud lähtekoodiga GUI-põhine testimise automatiseerimise tööriist. Seda kasutatakse peamiselt veebilehtede elementidega suhtlemiseks ja aknapõhiste hüpikakende haldamiseks. Sikuli kasutab veebilehtede elementidega ja akende hüpikakendega suhtlemiseks tehnikat "Image Recognition" ja "Control GUI". Sikulis võetakse kõik veebielemendid piltidena ja salvestatakse projekti sees.
Kuidas Sikulit kasutada koos Selenium Veebidraiver
Sikuli saab integreerida seleeni veebidraiveriga, kasutades Sikuli JAR faili.
Allpool on toodud sammude loend Sikuli seleeni veebidraiveriga konfigureerimiseks.
Samm 1) Laadige alla Sikuli JAR-faili allolevast URL-ist ja ekstraheerige ZIP-faili sisu kausta.
https://mvnrepository.com/artifact/com.sikulix/sikulixapi/2.0.5
Step 2) Looge sisse uus JAVA projekt Eclipse ja lisage JAR-fail koostamise tee koos seleenipurgi failidega, paremklõpsates projektil -> Koostamise tee -> Konfigureeri ehitustee
Kui olete JAR-faili projekti ehitusteele lisanud, saate kasutada Sikuli pakutavaid klasse.
Ekraanitund Sikulis
Ekraaniklass on kõigi Sikuli pakutavate meetodite baasklassid. Ekraaniklass sisaldab eelmääratletud meetodeid kõigi ekraanielementidega sageli tehtavate toimingute jaoks, nagu klõps, topeltklõps, tekstikasti sisendi andmine, hõljutamine jne. Allpool on Screen klassi pakutud sagedamini kasutatavate meetodite loend.
Meetod | Kirjeldus | Süntaks |
---|---|---|
Click | Seda meetodit kasutatakse elemendil klõpsamiseks ekraanil, kasutades parameetrina pildi nime. | Ekraan s = uus Ekraan();
s.click("QA.png"); |
topeltklõps | Seda meetodit kasutatakse elemendil topeltklõpsamiseks. See aktsepteerib parameetrina pildi nime. | Ekraan s = uus Ekraan();
s.doubleClick("QA.png"); |
KASUTUSALA | Seda meetodit kasutatakse elemendile sisendväärtuse andmiseks. See aktsepteerib parameetritena pildi nime ja saadetavat teksti. |
s.type("QA.png","TEKST"); |
Hõljuma | Seda meetodit kasutatakse elemendi kohal hõljutamiseks. See aktsepteerib parameetrina pildi nime. |
s.hover("QA.png"); |
leidma | Seda meetodit kasutatakse konkreetse elemendi leidmiseks ekraanilt. See aktsepteerib parameetrina pildi nime. |
s.find("QA.png"); |
Mustritund Sikulis
Mustriklassi kasutatakse pildifaili seostamiseks täiendavate atribuutidega, et element unikaalselt tuvastada. See võtab parameetrina pildi tee.
Muster p = uus Muster(“Pildi tee”);
Järgmised on mustrite klassi kõige sagedamini kasutatavad meetodid.
Meetod | Kirjeldus | Süntaks |
---|---|---|
hanki failinimi | Tagastab objektis Muster sisalduva failinime. |
Muster p = uus muster ("D:\Demo\QA.png"); String failinimi = p.getFileName(); |
sarnane | See meetod tagastab uue mustriobjekti, mille sarnasus on seatud määratud väärtusele. See aktsepteerib parameetrina sarnasuse väärtust vahemikus 0 kuni 1. Sikuli otsib kõik elemendid, mis jäävad määratud sarnasusvahemikku, ja tagastab uue mustriobjekti. |
Muster p1 = p.sarnane(0.7f); |
Täpne | See meetod tagastab uue mustriobjekti, mille sarnasus on seatud väärtusele 1. See otsib ainult määratud elemendi täpset vastet. |
Muster p1 = p.täpne(); |
Koodinäide faili üleslaadimiseks Sikuli abil
Allpool olev kood selgitab Sikuli kasutamist failide üleslaadimiseks 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(); } }
Koodi selgitus:
Step 1) Esimene väide hõlmab draiveri käivitatava tee määramist kroomi jaoks.
System.setProperty("webdriver.chrome.driver", "D:\\ chromedriver.exe");
Step 2) Kasutage ekraanipildi tööriista, näiteks Snipping Tool et teha ekraanipilte Windowsi hüpikaknast 'FileTextBox' ja 'Ava' nupp.
Teie ekraanipilt peaks välja nägema järgmine:
Windowsi failisisestuse tekstikasti ja avamisnupu pildid salvestatakse failitekstiBox.PNG ja OpenButton.PNG.
Sikuli kasutab pildituvastuse tehnikat ekraani elementide äratundmiseks. See leiab ekraanilt elemente ainult nende piltide põhjal.
Näide: Kui soovite automatiseerida märkmiku avamist, peate salvestama märkmiku töölauaikooni kujutise PNG-faili ja tegema sellel klõpsamistoimingu.
Meie puhul tunneb see ära failisisestuse tekstikasti ja avab nupu Windows hüpikaken, kasutades salvestatud pilte. Kui ekraani eraldusvõime muutub pildihõivest testskripti täitmiseks, oleks Sikuli käitumine ebajärjekindel. Seetõttu on alati soovitatav käivitada testskript sama eraldusvõimega, millega pildid jäädvustatakse. Piltide pikslisuuruse muutmine põhjustab Sikuli FindFailed erandi.
Step 3) Järgmised laused hõlmavad objektide loomist klasside Screen ja Pattern jaoks. Looge uus ekraaniobjekt. Määrake objekti Muster parameetriks faili tee, mida soovite üles laadida.
Screen s = new Screen(); Pattern fileInputTextBox = new Pattern(filepath + "FileTextBox.PNG"); Pattern openButton = new Pattern(filepath + "OpenButton.PNG");
Step 4) Järgmised avaldused hõlmavad Chrome'i brauseri avamist URL-iga: https://demo.guru99.com/test/image_upload/index.php
driver = new ChromeDriver(); driver.get("https://demo.guru99.com/test/image_upload/index.php");
Ülaltoodud URL on demorakendus failide üleslaadimise funktsiooni demonstreerimiseks.
Step 5) Klõpsake alloleva avalduse abil faili valimise nuppu
driver.findElement(By.xpath(".//*[@id='photoimg']")).click();
Step 6) Oodake, kuni ilmub akna hüpikaken. Ootemeetodit kasutatakse akende avanemisega seotud viivituse käsitlemiseks pärast sirvimisnupul klõpsamist.
s.wait(fileInputTextBox, 20);
Step 7) Tippige faili tee sisendfaili tekstikasti ja klõpsake nuppu Ava
s.type(fileInputTextBox, inputFilePath + "Test.docx"); s.click(openButton);
Step 8) Sulgege brauser
driver.close();
Väljund:
Esialgu avab skript Chrome'i brauseri
Klõpsates nupul 'Vali fail', ilmub Windowsi faili hüpikaken. Sisestab andmed failisisestuse tekstikasti ja klõpsab nuppu "Ava".
Pärast faili üleslaadimise lõpetamist ja brauseri sulgemist kuvatakse allolev ekraan
Järeldus
Sikulit kasutatakse veebilehel olevate välklampide ja akende hüpikakende hõlpsaks käsitlemiseks. Sikulit on kõige parem kasutada siis, kui kasutajaliidese elemendid ei muutu sageli. Selle puuduse tõttu eelistatakse Sikulit automatiseerimise testimise vaatenurgast võrreldes teiste raamistikega, nagu Robot ja AutoIT, vähem.