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.

Dnevni bilten Guru99

Započnite dan s najnovijim i najvažnijim vijestima o umjetnoj inteligenciji koje vam donosimo upravo sada.