Výuka Sikuli: Jak používat Sikuli se selenem (PŘÍKLAD)

Co je Sikuli?

SIKULI je open-source nástroj pro automatizaci testů založený na GUI. Používá se hlavně pro interakci s prvky webových stránek a manipulaci s vyskakovacími okny na bázi Windows. Sikuli využívá techniku ​​rozpoznávání obrazu a ovládání GUI k interakci s prvky webových stránek a vyskakovacích oken. V Sikuli jsou všechny webové prvky brány jako obrázky a uloženy uvnitř projektu.

V tomto tutoriálu se naučíme

Integrace Sikuli s Selenium Webdriver

Sikuli lze integrovat do webového ovladače selen pomocí souboru Sikuli JAR.

Níže uvedená sekvence je seznam kroků pro konfiguraci Sikuli pomocí webového ovladače selenu.

Krok 1) Stáhnout soubor Sikuli JAR z níže uvedené adresy URL.

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

Extrahujte obsah souboru ZIP do složky.

Krok 2) Vytvořte nový projekt JAVA v Eclipse a přidejte soubor JAR k sestavení cesty spolu se soubory selen jar pomocí Pravého kliknutí na projekt -> Vytvořit cestu -> Konfigurovat cestu sestavení

Jakmile přidáte soubor JAR do cesty sestavení projektu, lze použít třídy poskytované Sikuli.

Třída obrazovky v Sikuli

Screen class je základní třída pro všechny metody poskytované Sikuli. Třída Screen obsahuje předdefinované metody pro všechny běžně prováděné operace na prvcích obrazovky, jako je kliknutí, dvojité kliknutí, poskytnutí vstupu do textového pole, umístění kurzoru atd. Níže je uveden seznam běžně používaných metod poskytovaných třídou Screen.

MetodaPopisSyntax
KlikněteTato metoda se používá ke kliknutí na prvek na obrazovce s použitím názvu obrázku jako parametru.

Obrazovka s = nová obrazovka ();

s.click ('QA.png');

dvojklikTato metoda se používá k poklepání na prvek. Jako parametr přijímá název obrázku.

Obrazovka s = nová obrazovka ();

s.doubleClick ('QA.png');

TypTato metoda se používá k poskytnutí vstupní hodnoty prvku. Přijímá název obrázku a text, které mají být odeslány jako parametry.

s.type ('QA.png', 'TEXT');

Vznášet seTato metoda se používá k najetí myší na prvek. Jako parametr přijímá název obrázku.

s.hover ('QA.png');

NaléztTato metoda slouží k nalezení konkrétního prvku na obrazovce. Jako parametr přijímá název obrázku.

s.find ('QA.png');

Třída vzorů v Sikuli

Třída vzorů se používá k přiřazení souboru obrázku k dalším atributům pro jednoznačnou identifikaci prvku. Jako parametr bere cestu k obrázku.

Pattern p = new Pattern ('Path of image');

Následující jsou nejčastěji používané metody třídy Pattern.

Metoda

Popis

Syntax

getFileName

Vrátí název souboru obsažený v objektu Pattern.

Pattern p = nový Pattern ('D: Demo QA.png');

Název souboru řetězce = p.getFileName ();

podobný

Tato metoda vrací nový objekt Pattern s podobností nastavenou na zadanou hodnotu. Jako parametr přijímá hodnotu podobnosti mezi 0 a 1. Sikuli vyhledá všechny prvky, které spadají do zadaného rozsahu podobnosti, a vrátí nový objekt vzoru.

Vzor p1 = p.podobný (0,7f);

Přesný

Tato metoda vrací nový objekt vzoru s podobností nastavenou na 1. Vypadá pouze na přesnou shodu zadaného prvku.

Vzor p1 = p.exact ();

Příklad kódu pro nahrávání souborů pomocí Sikuli

Níže uvedený kód vysvětluje použití Sikuli pro nahrávání souborů ve Firefoxu. | _+_ |

Vysvětlení kódu:

Krok 1) První prohlášení zahrnuje nastavení cesty spustitelného ovladače pro chrom. | _+_ |

Krok 2) Pomocí nástroje pro procházení obrazovky, jako je Nástroj pro vystřihování, pořizujte snímky oken ve vyskakovacím okně „FileTextBox“ a „Otevřít“.

Takto by měl vypadat váš snímek obrazovky:-

Obrázky pro textové pole pro zadání souboru Windows a tlačítko pro otevření jsou uloženy do 'FileTextBox.PNG' a 'OpenButton.PNG'.

Sikuli používá k rozpoznávání prvků na obrazovce techniku ​​rozpoznávání obrazu. Najde prvky na obrazovce pouze na základě jejich obrázků.

Příklad: Pokud chcete automatizovat provoz otevírání poznámkového bloku, musíte uložit obrázek ikony na ploše pro poznámkový blok do souboru PNG a provést na něm operaci kliknutí.

V našem případě rozpozná textové pole pro zadání souboru a otevře okno ve vyskakovacím okně systému Windows pomocí uložených obrázků. Pokud se rozlišení obrazovky změní ze zachycení obrázku na spuštění testovacího skriptu, chování Sikuli by bylo nekonzistentní. Proto je vždy vhodné spustit testovací skript se stejným rozlišením, ve kterém jsou zachyceny obrázky. Změna velikosti pixelů obrázků způsobí, že Sikuli vyvolá výjimku FindFailed.

Krok 3) Další příkazy zahrnují vytváření objektů pro třídy Screen a Pattern. Vytvořte nový objekt obrazovky. Nastavte cestu k souboru, který chcete nahrát, jako parametr do objektu Pattern. | _+_ |

Krok 4) Níže uvedená prohlášení zahrnují otevření prohlížeče Chrome s adresou URL: https://demo.on2vhf.be/test/image_upload/index.php

 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.on2vhf.be/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(); } } 

Výše uvedená adresa URL je ukázkovou aplikací, která demonstruje funkce nahrávání souborů.

Krok 5) Klikněte na tlačítko Vybrat soubor pomocí níže uvedeného příkazu | _+_ |

Krok 6) Počkejte, až se zobrazí vyskakovací okno. Metoda čekání se používá ke zpracování zpoždění spojeného s otevíráním vyskakovacích oken po kliknutí na tlačítko Procházet. | _+_ |

Krok 7) Do textového pole vstupního souboru zadejte cestu k souboru a klikněte na tlačítko Otevřít | _+_ |

Krok 8) Zavřete prohlížeč | _+_ |

Výstup:

Zpočátku skript otevře prohlížeč Chrome

Po kliknutí na tlačítko „Vybrat soubor“ se zobrazí vyskakovací obrazovka souboru Windows. Zadá data do textového pole Vstup souboru a klikne na tlačítko „Otevřít“

Po dokončení nahrávání souboru a zavření prohlížeče se zobrazí níže uvedená obrazovka

Závěr:

Sikuli se používá k snadné manipulaci s objekty Flash na webové stránce a vyskakovacími okny Windows. Sikuli se nejlépe používá, když se prvky v uživatelském rozhraní často nemění. Díky této nevýhodě je Sikuli z pohledu testování automatizace dávána menší přednost ve srovnání s jinými rámci, jako jsou Robot a AutoIT.