Robot Sınıfı Selenium Web sürücüsü

Robot Sınıfı Nedir? Selenium?

Robot Sınıfı in Selenium uygulamalarına yönelik otomatik testleri etkinleştirmek için kullanılır. Java platformu. Test otomasyonu, kendi kendine çalışan demolar ve kullanıcıların fare ve klavye üzerinde kontrole ihtiyaç duyduğu diğer uygulamalar için yerel sistemlerde giriş olayları oluşturur. Robot sınıfının uygulanması kolaydır ve otomatikleştirilmiş bir çerçeveye kolayca entegre edilebilir.

Neden Robot Sınıfı?

Robot Sınıfı kullanılan Selenium çünkü kesinlikle Selenium Otomasyon testlerinde, kullanıcıların indirme açılır pencereleri, yazdırma açılır pencereleri vb. gibi işletim sistemi pencereleriyle ve not defteri, hesap makinesi vb. gibi yerel uygulamalarla etkileşime girebilmesi için klavye veya fare üzerinde kontrole ihtiyacı vardır. Selenium Web sürücüsü bu açılır pencereleri/uygulamaları işleyemez; Java sürüm 1.3, işletim sistemi açılır pencerelerini/uygulamalarını yönetebilen robot sınıfı tanıtıldı.

Robot Sınıfı Dokümantasyonu

The Robot Sınıfı Dokümantasyonu in Selenium kullanıcıların robot sınıfında mevcut olan tüm yöntem ve işlevlerin temel tanımını, sözdizimini ve kullanımını anlamalarına yardımcı olur. Java AWT paketi. Kullanıcılar belgeleri şu adreste görüntüleyebilir: Resmi Oracle Web sitesi. Kullanıcılar ayrıca belgeleri yerel makinelerinde kendileri de oluşturabilirler.

Belgeleri yerel makinede oluşturmak için aşağıdaki adımları izleyin:

) 1 Adım Src.zip dosyasını JDK klasöründe bulacaksınız. Src.zip dosyasını kopyalayın ve aynısını başka bir klasöre veya dizine çıkarın (D: veya E: deyin)

Robot Sınıfı Dokümantasyonu

) 2 Adım Src klasörünü çıkarın ve şuraya gidin (src klasörüne giden yol)/src/java/awt

) 3 Adım Awt klasörünün geçerli konumunu kopyalayın ve komut istemini açın.

) 4 Adım Cmd'de mevcut dizin konumunuzu awt klasörü olarak değiştirin ve aşağıda gösterildiği gibi 'javadoc *.java' yazın

Robot Sınıfı Dokümantasyonu

Sistemin işlemesi için bir süre bekleyin, tamamlandığında awt klasöründe birkaç HTML dosyası göreceksiniz.

) 5 Adım index.html'yi açın

Robot Sınıfı Dokümantasyonu

) 6 Adım İşte awt paketinin tam belgelerine sahipsiniz; sol gezinme çubuğundan 'Robot' köprüsüne tıklayın (Aşağıdaki resimde işaretlenen 1'e bakın).

Robot Sınıfı Dokümantasyonu

Burada ayrıca Robot Sınıfının tüm yöntemlerini ve arayüzlerini görebilirsiniz (Yukarıdaki resimde işaretlenen 2'ye bakın).

Robot Sınıfı Yöntemleri Selenium ve Kullanım

Robot Sınıfı yöntemleri, tarayıcı otomasyonu yaparken klavye/fare olaylarıyla etkileşimde bulunmak için kullanılabilir. Alternatif olarak OtoBT kullanılabilir, ancak dezavantajı yalnızca Windows'ta çalışacak bir yürütülebilir dosya (exe) üretmesidir, bu nedenle kullanmak için iyi bir seçenek değildir.

Web otomasyonu sırasında Robot Sınıfının yaygın ve popüler olarak kullanılan bazı yöntemleri:

Yöntem 1: keyPress():

robot.keyPress(KeyEvent.VK_DOWN): Klavyenin aşağı ok tuşuna basılarak yapılan bu yöntem

Yöntem 2: mousePress():

robot.mousePress(InputEvent.BUTTON3_DOWN_MASK): Bu yöntem farenizin sağ tıklamasına basacaktır.

Yöntem 3: mouseMove():

robot.mouseMove(point.getX(), point.getY()): Bu, fare işaretçisini belirtilen X ve Y koordinatlarına hareket ettirecektir.

Yöntem 4: keyRelease():

robot.keyRelease(KeyEvent.VK_DOWN): Klavyenin aşağı ok tuşunu serbest bırakan bu yöntem

Yöntem 5: mouseRelease():

robot.mouseRelease(InputEvent.BUTTON3_DOWN_MASK): Bu yöntem, farenizin sağ tıklamasını serbest bırakır

Robot Class'ı kullanarak yaygın kullanım durumlarını otomatikleştirmek için örnek kod

  • http://spreadsheetpage.com/index.php/file/C35/P10/ web sitesine bir örnek verelim; burada bir web öğesine tıkladıktan sonra (.//a[@href=contains(text(),'yearly-calendar.xls']) bir işletim sistemi indirme açılır penceresi görünür.
  • Bunu halletmek için Robot sınıfını kullanıyoruz (kodunuzda Robot Sınıfının bir örneğini oluşturarak Robot robot = yeni Robot()). Robot sınıfını JDK'nın AWT paketinde sunuyoruz.
Klavye tuşu Yöntem
Aşağı ok tuşuna basmak için (robot.keyPress(KeyEvent.VK_DOWN)) kullanıyoruz
SEKME tuşuna basmak için (robot.keyPress(KeyEvent.VK_TAB)) kullanıyoruz
Enter tuşuna basmak için (robot.keyPress(KeyEvent.VK_ENTER)) kullanıyoruz

Robot Sınıfı Örneği Selenium

import java.awt.AWTException;	
import java.awt.Robot;	
import java.awt.event.KeyEvent;	
import org.openqa.selenium.By;	
import org.openqa.selenium.WebDriver;	
import org.openqa.selenium.firefox.FirefoxDriver;	

class Excercise1 {	

      public static void main(String[] args) throws AWTException, InterruptedException {	
           WebDriver driver = new FirefoxDriver();	
           driver.get("http://spreadsheetpage.com/index.php/file/C35/P10/"); // sample url	
           driver.findElement(By.xpath(".//a[@href=contains(text(),'yearly-calendar.xls')]")).click();	
           Robot robot = new Robot();  // Robot class throws AWT Exception	
           Thread.sleep(2000); // Thread.sleep throws InterruptedException	
           robot.keyPress(KeyEvent.VK_DOWN);  // press arrow down key of keyboard to navigate and select Save radio button	
           
           Thread.sleep(2000);  // sleep has only been used to showcase each event separately	
           robot.keyPress(KeyEvent.VK_TAB);	
           Thread.sleep(2000);	
           robot.keyPress(KeyEvent.VK_TAB);	
           Thread.sleep(2000);	
           robot.keyPress(KeyEvent.VK_TAB);	
           Thread.sleep(2000);	
           robot.keyPress(KeyEvent.VK_ENTER);	
       // press enter key of keyboard to perform above selected action	
     }	 
 }

Çalışırken görmek için bu videoyu kontrol edin

Robot Sınıfı kodunu kullanarak nasıl çalıştırılır? TestNG

Artık Robot Sınıfının temel yöntemlerini öğrendiğinize göre, birkaç daha karmaşık yöntemi anlayalım -

Diyelim ki kullanmak istemiyorsunuz tıklama yöntemi web öğesine tıklamak için.

Bu gibi durumlarda Robot sınıfının mouseMove metodunu kullanabilirsiniz.

) 1 Adım mouseMove yöntemi, x ve y koordinatlarını aşağıdaki gibi parametre olarak alır robot.mouseMove(630, 420) burada 630 x eksenini, 420 ise y eksenini belirtir. Yani bu yöntem fare işaretçinizi mevcut konumdan belirtilen x ve y kesişim noktasına taşıyacaktır.

) 2 Adım Daha sonra fare tuşuna basmamız gerekiyor. Yöntemi kullanabiliriz farePress sevmek robot.mousePress(InputEvent.BUTTON1_DOWN_MASK) .

) 3 Adım Bastıktan sonra farenin serbest bırakılması gerekir. Kullanabiliriz robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK) farenin sol tıklamasını serbest bırakmak için.

TestNG kullanarak kodu çalıştırma:

Kodu kullanarak çalıştırma Test testNG'nin maven bağımlılığını veya başvurulan kütüphaneyi gerektirir TestNG jar dosyası.

TestNG maven bağımlılığı:

<dependency>	
  <groupId>org.testng</groupId>
  <artifactId>testng</artifactId>	
  <version>6.1.1</version>	
</dependency>

Maven bağımlılığı veya jar dosyası ekledikten sonra. testNG'nin Test açıklamasını içe aktarmanız gerekir. Her şey tamamlandıktan sonra, program koduna sağ tıklayın ve Run As'a tıklayın, ardından TestNG… ve kodun testNG API'sini kullanarak yürütülmeye başladığını göreceksiniz.

İşte kod

import java.awt.AWTException;	
import java.awt.Robot;	
import java.awt.event.InputEvent;	
import java.awt.event.KeyEvent;	
import org.openqa.selenium.WebDriver;	
import org.openqa.selenium.firefox.FirefoxDriver;	
import org.testng.annotations.Test;	

public class Excersise1 {	

    @Test	
    public static void  execution() throws InterruptedException, AWTException {
        WebDriver driver = new FirefoxDriver();	
        driver.manage().window().maximize();	
        driver.get("http://spreadsheetpage.com/index.php/file/C35/P10/"); // sample url	
        Robot robot = new Robot();	
        robot.mouseMove(630, 420); // move mouse point to specific location	
        robot.delay(1500);        // delay is to make code wait for mentioned milliseconds before executing next step	
        robot.mousePress(InputEvent.BUTTON1_DOWN_MASK); // press left click	
        robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK); // release left click	
        robot.delay(1500);	
        robot.keyPress(KeyEvent.VK_DOWN); // press keyboard arrow key to select Save radio button	
        Thread.sleep(2000);	
        robot.keyPress(KeyEvent.VK_ENTER);	
        // press enter key of keyboard to perform above selected action	
    }	
}	

Çalışırken görmek için bu videoyu kontrol edin

Robot Sınıfının Faydaları

  1. Robot Sınıfı Klavye ve Fare Olayını simüle edebilir
  2. Robot Sınıfı, Selenium web sürücüsünü kullanırken dosyaların yüklenmesine/indirilmesine yardımcı olabilir
  3. Robot Sınıfı mevcut otomasyon çerçevesiyle (anahtar kelime, veri odaklı veya hibrit) kolayca entegre edilebilir

Robot Sınıfının Dezavantajları

Robot çerçevesinin aşağıda belirtilen birkaç dezavantajı vardır:

  1. Anahtar kelime/fare olayı yalnızca geçerli Window örneğinde çalışır. Örneğin, bir kodun herhangi bir robot sınıfı olayını gerçekleştirdiğini ve kod yürütme sırasında kullanıcının başka bir ekrana geçtiğini ve ardından o ekranda anahtar kelime/fare olayının meydana geleceğini varsayalım.
  2. MouseMove gibi yöntemlerin çoğu ekran çözünürlüğüne bağlıdır, dolayısıyla bir makinede çalışan kodun diğerinde çalışmama ihtimali olabilir.

ÖZET

AWT paketindeki Robot sınıfı, işletim sistemi pencereleri ve yerel uygulamalarla etkileşim kurmak için klavye/fare olayları üretmek amacıyla kullanılır.

Robot'un temel amacı, selenyum otomatik test projesinin oluşturulmasını desteklemektir Java platform