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.

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

Kรคytรค Sikulia kanssa Selenium Web-ohjain

Vaihe 2) Luo uusi JAVA-projekti sisรครคn Eclipse ja lisรครค JAR-tiedosto rakennuspolkuun sekรค seleenipurkkitiedostot napsauttamalla projektia hiiren kakkospainikkeella -> Rakennapolku -> Mรครคritรค rakennuspolku

kรคytรค Sikuli With Selenium Web-ohjain

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.

Koodiesimerkki tiedoston lataamiseen Sikulilla

Tรคltรค kuvakaappauksen pitรคisi nรคyttรครค: -

Koodiesimerkki tiedoston lataamiseen Sikulilla

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

Koodiesimerkki tiedoston lataamiseen Sikulilla

Napsauttamalla 'Valitse tiedosto' -painiketta Windows-tiedoston ponnahdusikkuna tulee nรคkyviin. Syรถttรครค tiedot File Input -tekstiruutuun ja napsauttaa 'Avaa'-painiketta

Koodiesimerkki tiedoston lataamiseen Sikulilla

Alla oleva nรคyttรถ tulee nรคkyviin, kun tiedoston lataus on valmis ja selain suljetaan

Koodiesimerkki tiedoston lataamiseen Sikulilla

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.

Tiivistรค tรคmรค viesti seuraavasti: