Sikuli Tutorial za Selenium Automatizacija

U ฤemu je Sikuli Selenium?

Sikuli je alat za automatizaciju testiranja temeljen na GUI-ju otvorenog koda. Uglavnom se koristi za interakciju s elementima web stranica i rukovanje skoฤnim prozorima. Sikuli koristi tehniku โ€‹โ€‹"Image Recognition" i "Control GUI" za interakciju s elementima web stranica i skoฤnim prozorima. U Sikuliju se svi web elementi uzimaju kao slike i pohranjuju unutar projekta.

Kako koristiti Sikuli sa Selenium Webdriver

Sikuli se moลพe integrirati sa selenium webdriverom pomoฤ‡u Sikuli JAR datoteke.

Slijed u nastavku je popis koraka za konfiguriranje Sikulija sa selenium webdriverom.

Korak 1) Preuzimanje Sikuli JAR datoteku s donjeg URL-a i izvucite sadrลพaj ZIP datoteke u mapu.

https://mvnrepository.com/artifact/com.sikulix/sikulixapi/2.0.5

Koristite Sikuli With Selenium Webdriver

Korak 2) Napravite novi JAVA projekt u Eclipse i dodajte JAR datoteku u put izgradnje, zajedno sa selenium jar datotekama pomoฤ‡u desnog klika na projekt -> Put izgradnje -> Konfiguriraj put izgradnje

koristiti Sikuli With Selenium Webdriver

Nakon ลกto ste dodali JAR datoteku na stazu izgradnje projekta, mogu se koristiti klase koje nudi Sikuli.

Razred ekrana u Sikulima

Klasa zaslona je osnovna klasa za sve metode koje nudi Sikuli. Klasa zaslona sadrลพi unaprijed definirane metode za sve operacije koje se uobiฤajeno izvode na elementima zaslona kao ลกto su klik, dvostruki klik, pruลพanje unosa u tekstualni okvir, lebdenje, itd. Dolje je popis najฤeลกฤ‡e koriลกtenih metoda koje nudi klasa zaslona.

naฤin Description Sintaksa
Kliknite Ova se metoda koristi za klik na element na zaslonu koristeฤ‡i naziv slike kao parametar. Zaslon s = novi Zaslon();

s.click(โ€œQA.pngโ€);

dvostruki klik Ova se metoda koristi za dvostruki klik na element. Prihvaฤ‡a naziv slike kao parametar. Zaslon s = novi Zaslon();

s.doubleClick(โ€œQA.pngโ€);

Tip Ova se metoda koristi za pruลพanje ulazne vrijednosti elementu. Prihvaฤ‡a naziv slike i tekst za slanje kao parametre.

s.type(โ€œQA.pngโ€,โ€TEKSTโ€);

Lebdjeti Ova se metoda koristi za postavljanje pokazivaฤa iznad elementa. Prihvaฤ‡a naziv slike kao parametar.

s.hover("QA.png");

naฤ‡i Ova se metoda koristi za pronalaลพenje odreฤ‘enog elementa na zaslonu. Prihvaฤ‡a naziv slike kao parametar.

s.find("QA.png");

Razred uzora u Sikulima

Klasa uzorka koristi se za pridruลพivanje slikovne datoteke dodatnim atributima za jedinstvenu identifikaciju elementa. Uzima putanju slike kao parametar.

Pattern p = new Pattern(โ€œPut slikeโ€);

Sljedeฤ‡e su najฤeลกฤ‡e koriลกtene metode klase Pattern.

naฤin Description Sintaksa
getFileName Vraฤ‡a naziv datoteke sadrลพan u objektu uzorka.

Uzorak p = novi uzorak (โ€œD:\Demo\QA.pngโ€);

String naziv datoteke = p.getFileName();

sliฤan Ova metoda vraฤ‡a novi objekt Pattern sa sliฤnoลกฤ‡u postavljenom na odreฤ‘enu vrijednost. Prihvaฤ‡a vrijednost sliฤnosti izmeฤ‘u 0 i 1 kao parametar. Sikuli traลพi sve elemente koji spadaju unutar navedenog raspona sliฤnosti i vraฤ‡a novi objekt uzorka.

Uzorak p1 = p.similar(0.7f);

Toฤan Ova metoda vraฤ‡a novi objekt uzorka sa sliฤnoลกฤ‡u postavljenom na 1. Traลพi samo toฤno podudaranje navedenog elementa.

Uzorak p1 = p.exact();

Primjer koda za uฤitavanje datoteke pomoฤ‡u Sikulija

Donji kod objaลกnjava upotrebu Sikulija za uฤitavanje datoteka 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();
    }
}

Objaลกnjenje koda:

Korak 1) Prva izjava ukljuฤuje postavljanje putanje izvrลกnog upravljaฤkog programa za chrome.

System.setProperty("webdriver.chrome.driver", "D:\\ chromedriver.exe");

Korak 2) Koristite alat za snimanje zaslona kao ลกto je Snipping Tool za snimanje zaslona skoฤnog prozora 'FileTextBox' i gumb 'Otvori'.

Primjer koda za uฤitavanje datoteke pomoฤ‡u Sikulija

Ovako bi trebala izgledati vaลกa snimka zaslona:-

Primjer koda za uฤitavanje datoteke pomoฤ‡u Sikulija

Slike za tekstualni okvir za unos Windows datoteke i gumb za otvaranje pohranjuju se na 'FileTextBox.PNG' i 'OpenButton.PNG'.

Sikuli koristi tehniku โ€‹โ€‹Image Recognition za prepoznavanje elemenata na ekranu. Pronalazi elemente na zaslonu iskljuฤivo na temelju njihovih slika.

Primjer: Ako ลพelite automatizirati operaciju otvaranja biljeลพnice, trebate pohraniti sliku ikone radne povrลกine za biljeลพnicu u PNG datoteku i izvrลกiti radnju klika na njoj.

U naลกem sluฤaju, prepoznaje tekstualni okvir za unos datoteke i otvara gumb na Windows skoฤni prozor pomoฤ‡u pohranjenih slika. Ako se razluฤivost zaslona mijenja od snimanja slike do izvoฤ‘enja testne skripte, ponaลกanje Sikulija bilo bi nedosljedno. Stoga je uvijek preporuฤljivo pokrenuti testnu skriptu na istoj razluฤivosti u kojoj su slike snimljene. Promjena u veliฤini piksela slika rezultirat ฤ‡e time da Sikuli izbaci iznimku FindFailed.

Korak 3) Sljedeฤ‡e izjave ukljuฤuju stvaranje objekata za klase Screen i Pattern. Stvorite novi zaslonski objekt. Postavite putanju datoteke koju ลพelite prenijeti kao parametar objektu Pattern.

Screen s = new Screen();
Pattern fileInputTextBox = new Pattern(filepath + "FileTextBox.PNG");
Pattern openButton = new Pattern(filepath + "OpenButton.PNG");

Korak 4) Donje izjave ukljuฤuju otvaranje preglednika Chrome s URL-om: https://demo.guru99.com/test/image_upload/index.php

driver = new ChromeDriver();
driver.get("https://demo.guru99.com/test/image_upload/index.php");

Gornji URL je demo aplikacija za demonstraciju funkcije uฤitavanja datoteka.

Korak 5) Pritisnite gumb za odabir datoteke koristeฤ‡i donju izjavu

driver.findElement(By.xpath(".//*[@id='photoimg']")).click();

Korak 6) Priฤekajte da se pojavi prozorski prozor. Metoda ฤekanja koristi se za rjeลกavanje odgode povezane s otvaranjem iskaฤuฤ‡ih prozora nakon klika na gumb za pregledavanje.

s.wait(fileInputTextBox, 20);

Korak 7) Upiลกite put datoteke u tekstni okvir ulazne datoteke i kliknite gumb Otvori

s.type(fileInputTextBox, inputFilePath + "Test.docx");
s.click(openButton);

Korak 8) Zatvorite preglednik

driver.close();

Izlaz:

U poฤetku skripta otvara chrome preglednik

Primjer koda za uฤitavanje datoteke pomoฤ‡u Sikulija

Klikom na gumb 'Odaberi datoteku' pojavit ฤ‡e se skoฤni prozor za Windows datoteku. Unosi podatke u tekstualni okvir za unos datoteke i klikne na gumb "Otvori".

Primjer koda za uฤitavanje datoteke pomoฤ‡u Sikulija

Donji zaslon se prikazuje nakon ลกto je uฤitavanje datoteke zavrลกeno i zatvara preglednik

Primjer koda za uฤitavanje datoteke pomoฤ‡u Sikulija

Zakljuฤak

Sikuli se koristi za rukovanje flash objektima na web stranici i skoฤnim prozorima s lakoฤ‡om. Sikuli je najbolje koristiti kada se elementi na korisniฤkom suฤelju ne mijenjaju ฤesto. Zbog ovog nedostatka, iz perspektive testiranja automatizacije, Sikuli ima manje prednosti u usporedbi s drugim okvirima kao ลกto su Robot i AutoIT.

Saลพmite ovu objavu uz: