Sikuli Eğitimi Selenium Otomasyon

Sikuli ne içindedir? Selenium?

sikuli açık kaynaklı GUI tabanlı bir test otomasyon aracıdır. Esas olarak web sayfalarının öğeleriyle etkileşim kurmak ve pencere tabanlı açılır pencereleri yönetmek için kullanılır. Sikuli, web sayfalarının öğeleriyle ve pencere açılır pencereleriyle etkileşim kurmak için “Görüntü Tanıma” ve “Kontrol GUI” tekniğini kullanır. Sikuli'de tüm web öğeleri görüntü olarak alınır ve proje içinde saklanır.

Sikuli nasıl kullanılır? Selenium Web sürücüsü

Sikuli, Sikuli JAR dosyası kullanılarak Selenyum web sürücüsü ile entegre edilebilir.

Aşağıdaki sıra Sikuli'yi Selenyum web sürücüsüyle yapılandırmak için gereken adımların listesidir.

Adım 1) İndir Aşağıdaki URL'den Sikuli JAR dosyasını indirin ve ZIP dosyasının içeriğini bir klasöre çıkarın.

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

Sikuli'yi şununla kullanın: Selenium Web sürücüsü

) 2 Adım İçinde yeni bir JAVA projesi oluşturun Eclipse ve projeye Sağ Tıklayarak -> Yapı Yolu -> Yapı Yolunu Yapılandır'ı kullanarak selenyum jar dosyalarıyla birlikte JAR dosyasını derleme yoluna ekleyin

Sikuli'yi şununla kullanın: Selenium Web sürücüsü

JAR dosyasını proje oluşturma yoluna ekledikten sonra Sikuli tarafından sağlanan sınıflar kullanılabilir.

Sikuli'de ekran sınıfı

Ekran sınıfı, Sikuli tarafından sağlanan tüm yöntemler için temel sınıflardır. Ekran sınıfı, tıklama, çift tıklama, bir metin kutusuna girdi sağlama, gezinme vb. gibi ekran öğelerinde yaygın olarak gerçekleştirilen tüm işlemler için önceden tanımlanmış yöntemler içerir. Aşağıda Ekran sınıfı tarafından sağlanan yaygın olarak kullanılan yöntemlerin listesi bulunmaktadır.

Yöntem Açıklama Sözdizimi
Tıkla Bu yöntem, parametre olarak görüntü adını kullanarak ekrandaki bir öğeye tıklamak için kullanılır. Ekranlar = yeni Ekran();

s.click(“QA.png”);

çift ​​tıklama Bu yöntem bir elemente çift tıklamak için kullanılır. Parametre olarak resim adını kabul eder. Ekranlar = yeni Ekran();

s.doubleClick(“QA.png”);

Menşei Bu yöntem bir öğeye giriş değeri sağlamak için kullanılır. Gönderilecek resim adını ve metni parametre olarak kabul eder.

s.type(“QA.png”,”METİN”);

Duraksamak Bu yöntem bir öğenin üzerine gelmek için kullanılır. Parametre olarak resim adını kabul eder.

s.hover(“QA.png”);

bulmak Bu yöntem ekranda belirli bir öğeyi bulmak için kullanılır. Parametre olarak resim adını kabul eder.

s.find(“QA.png”);

Sikuli'de desen sınıfı

Desen sınıfı, öğeyi benzersiz şekilde tanımlamak için görüntü dosyasını ek niteliklerle ilişkilendirmek için kullanılır. Parametre olarak görüntünün yolunu alır.

Desen p = yeni Desen(“Görüntünün Yolu”);

Aşağıda Pattern sınıfının en sık kullanılan metotları listelenmiştir.

Yöntem Açıklama Sözdizimi
getFileName Pattern nesnesinde bulunan dosya adını döndürür.

Desen p = yeni Desen(“D:\Demo\QA.png”);

String dosya adı = p.getFileName();

benzer Bu yöntem, benzerliği belirtilen değere ayarlanmış yeni bir Pattern nesnesi döndürür. Parametre olarak 0 ile 1 arasındaki benzerlik değerini kabul eder. Sikuli, belirtilen benzerlik aralığına giren tüm öğeleri arar ve yeni bir model nesnesi döndürür.

Desen p1 = p.benzer(0.7f);

Tam Bu yöntem, benzerliği 1'e ayarlanmış yeni bir model nesnesi döndürür. Yalnızca belirtilen öğenin tam eşleşmesini arar.

Desen p1 = p.exact();

Sikuli Kullanarak Dosya Yüklemeye İlişkin Kod Örneği

Aşağıdaki kod, Sikuli'nin dosya yükleme için kullanımını açıklamaktadır. 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();
    }
}

Kod Açıklaması:

) 1 Adım İlk ifade, Chrome için sürücü çalıştırılabilir yolunun ayarlanmasını içerir.

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

) 2 Adım Aşağıdaki gibi bir ekran yakalama aracı kullanın: Snipping Tool Windows açılır penceresinin ekran görüntüsünü almak için 'FileText'Box' ve 'Aç' düğmesine basın.

Sikuli Kullanarak Dosya Yüklemeye İlişkin Kod Örneği

Ekran görüntünüz şu şekilde görünmeli: -

Sikuli Kullanarak Dosya Yüklemeye İlişkin Kod Örneği

Windows dosya giriş metin kutusu ve açık düğme için resimler 'FileText'e kaydedilirBox.PNG' ve 'OpenButton.PNG'.

Sikuli, ekrandaki öğeleri tanımak için Görüntü Tanıma tekniğini kullanıyor. Ekrandaki öğeleri yalnızca görüntülerine göre bulur.

Örnek: Not defteri açma işlemini otomatikleştirmek istiyorsanız, not defteri için masaüstü simgesinin görüntüsünü bir PNG dosyasına kaydetmeniz ve üzerinde tıklama işlemini gerçekleştirmeniz gerekir.

Bizim durumumuzda, dosya giriş metin kutusunu tanır ve düğmeyi açar Windows saklanan görüntüleri kullanan açılır pencere. Ekran çözünürlüğü görüntü yakalamadan test betiği yürütmeye değişirse, Sikuli'nin davranışı tutarsız olur. Bu nedenle, test betiğini görüntülerin yakalandığı çözünürlükte çalıştırmak her zaman tavsiye edilir. Görüntülerin piksel boyutundaki değişiklik, Sikuli'nin FindFailed istisnası atmasına neden olur.

) 3 Adım Sonraki ifadeler Screen ve Pattern sınıfları için nesnelerin oluşturulmasını içermektedir. Yeni bir ekran nesnesi oluşturun. Yüklemek istediğiniz dosyanın yolunu Pattern nesnesine parametre olarak ayarlayın.

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

) 4 Adım Aşağıdaki ifadeler, Chrome tarayıcısının URL ile açılmasını içerir: https://demo.guru99.com/test/image_upload/index.php

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

Yukarıdaki URL, dosya yükleme işlevini gösteren bir demo uygulamasıdır.

) 5 Adım Aşağıdaki ifadeyi kullanarak dosya seç düğmesini tıklayın

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

) 6 Adım Windows açılır penceresinin görünmesini bekleyin. Bekleme yöntemi, gözat düğmesine tıklandıktan sonra Windows açılır penceresinin açılmasıyla ilişkili gecikmeyi yönetmek için kullanılır.

s.wait(fileInputTextBox, 20);

) 7 Adım Giriş dosyası metin kutusuna dosya yolunu yazın ve Aç düğmesine tıklayın

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

) 8 Adım Tarayıcıyı kapat

driver.close();

Çıktı:

Başlangıçta, komut dosyası Chrome tarayıcısını açar

Sikuli Kullanarak Dosya Yüklemeye İlişkin Kod Örneği

'Dosya Seç' düğmesine tıklandığında, Windows dosya açılır ekranı görünecektir. Dosya Girişi metin kutusuna veri girer ve 'Aç' düğmesine tıklanır

Sikuli Kullanarak Dosya Yüklemeye İlişkin Kod Örneği

Dosya yükleme işlemi tamamlandığında ve tarayıcı kapatıldığında aşağıdaki ekran görüntülenir

Sikuli Kullanarak Dosya Yüklemeye İlişkin Kod Örneği

Sonuç

Sikuli, bir web sayfasındaki flaş nesneleri ve pencere açılır pencerelerini kolaylıkla işlemek için kullanılır. Sikuli, kullanıcı arayüzündeki öğeler sık ​​sık değişmediğinde en iyi şekilde kullanılır. Bu dezavantaj nedeniyle, otomasyon testi perspektifinden bakıldığında, Sikuli, Robot ve AutoIT gibi diğer çerçevelere kıyasla daha az tercih edilir.

Bu yazıyı şu şekilde özetleyin: