Selenium Webdriver'da Robot Sınıfı

İçindekiler:

Anonim

Robot Sınıfı

Selenium'daki Robot Sınıfı , Java platformu uygulamaları için otomatik test yapılmasını sağlamak için kullanılır. Kullanıcıların fare ve klavye üzerinde kontrole ihtiyaç duyduğu test otomasyonu, kendi kendine çalışan demolar ve diğer uygulamalar için yerel sistemlerde girdi olayları oluşturur. Robot sınıfının uygulanması kolaydır ve otomatikleştirilmiş bir çerçeve ile kolayca entegre edilebilir.

Neden Robot Sınıfı?

Selenium'da Robot Sınıfı kullanılır, çünkü bazı Selenium otomasyon testlerinde, kullanıcıların indirme açılır pencereleri, açılır pencereler vb. Gibi işletim sistemi pencereleriyle ve not defteri, hesap makinesi gibi yerel uygulamalarla etkileşimde bulunmak için klavye veya fare üzerinde kontrole ihtiyacı vardır. Selenium Webdriver bu açılır pencereleri / uygulamaları işleyemez, bu nedenle Java sürüm 1.3'te, işletim sistemi açılır pencerelerini / uygulamalarını işleyebilen robot sınıfı tanıtıldı.

Bu eğitimde öğreneceksiniz,

  • Robot Sınıfının Faydaları
  • Robot Sınıfı Belgeleri
  • Robot Sınıfı dahili yöntemlerini ve kullanımını anlama
  • TestNG kullanarak robot sınıfı kodu nasıl çalıştırılır
  • Robot Sınıfının Dezavantajları

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ı, selenyum web sürücüsü kullanılırken dosyaların yüklenmesine / indirilmesine yardımcı olabilir
  3. Robot Sınıfı, mevcut otomasyon çerçevesine (anahtar kelime, veri odaklı veya hibrit) kolayca entegre edilebilir

Robot Sınıfı Dokümantasyonu nedir?

Robot Sınıf Belgeleri Selenyumun kullanıcıların Java AWT paketinde robot sınıfında bulunan tüm yöntemleri ve fonksiyonlarının temel tanımı, sözdizimi ve kullanımını anlamaya yardımcı olur. Kullanıcılar, belgeleri Resmi Oracle web sitesinde görüntüleyebilir. Kullanıcılar ayrıca kendi yerel makinelerinde de dokümantasyonu oluşturabilirler.

Dokümantasyonu yerel makinede oluşturmak için aşağıdaki adımları izleyin.

Adım 1) 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ör veya dizine çıkartın (örneğin D: veya E :)

Adım 2) src klasörünü çıkarın ve (src klasörüne kadar olan yol) / src / java / awt konumuna gidin.

Adım 3) awt klasörünün mevcut konumunu kopyalayın ve komut istemini açın.

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

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

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

Adım 6) Burada, awt paketinin tam dokümantasyonuna sahipsiniz, sol gezinti çubuğundan 'Robot' hiperlinkine tıklayın (Aşağıdaki resimde işaretli olan 1'e bakın).

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

Robot Sınıfı dahili yöntemlerini ve kullanımını anlama

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

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

  • keyPress (): Örnek: robot.keyPress (KeyEvent.VK_DOWN): Klavyenin aşağı ok tuşuna basılarak bu yöntem
  • mousePress (): Örnek : robot.mousePress (InputEvent.BUTTON3_DOWN_MASK): Bu yöntem farenizin sağ tıklanmasına basacaktır.
  • mouseMove (): Örnek : robot.mouseMove (point.getX (), point.getY ()): Bu, fare işaretçisini belirtilen X ve Y koordinatlarına hareket ettirecektir.
  • keyRelease (): Örnek: robot.keyRelease (KeyEvent.VK_DOWN): Klavyenin aşağı ok tuşunu serbest bırakan bu yöntem
  • mouseRelease (): Örnek: robot.mouseRelease (InputEvent.BUTTON3_DOWN_MASK): Bu yöntem farenizin sağ tıklamasını serbest bırakır

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

  • Http://spreadsheetpage.com/index.php/file/C35/P10/ web sitesini örnek alalım, 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üntülenir.
  • 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 = new Robot () deyin ). Robot sınıfı, JDK'nın AWT paketinde mevcut.
  • Kullandığımız Klavyenin aşağı ok tuşuna basmak için ( robot.keyPress (KeyEvent.VK_DOWN))
  • Klavyenin TAB tuşuna basmak için (robot.keyPress (KeyEvent.VK_TAB) kullanıyoruz)
  • Enter tuşuna basmak için kullanıyoruz ( robot.keyPress (KeyEvent.VK_ENTER)).

İşte örnek bir kod

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 Egzersiz1 {public static void main (String [] args) AWTException, InterruptedException {atarWebDriver sürücüsü = yeni FirefoxDriver ();driver.get ("http://spreadsheetpage.com/index.php/file/C35/P10/"); // örnek urldriver.findElement (By.xpath (".// a [@ href = contains (text (), 'yıllık-takvim.xls')]")) tıklayın ();Robot robot = yeni Robot (); // Robot sınıfı AWT Exception'ı atıyorThread.sleep (2000); // Thread.sleep InterruptedException'ı atıyorrobot.keyPress (KeyEvent.VK_DOWN); // gezinmek ve Kaydet radyo düğmesini seçmek için klavyenin aşağı ok tuşuna basınThread.sleep (2000); // uyku yalnızca her olayı ayrı ayrı sergilemek için kullanılmıştırrobot.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);// seçilen eylemin üzerinde gerçekleştirmek için klavyenin enter tuşuna basın}} 

Nasıl çalıştığını görmek için bu videoyu kontrol edin

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

Artık Robot Sınıfının temel yöntemlerinin farkındasınız, bu yüzden birkaç daha karmaşık yöntemi anlayalım -

Eğer varsayalım yok kullanmak istediğiniz tıklama yöntemi web elemanı tıklamamaktadır için.

Bu gibi durumlarda, Robot sınıfının mouseMove yöntemini kullanabilirsiniz.

Adım 1) mouseMove yöntemi, robot.mouseMove (630, 420) gibi parametreler olarak x ve y koordinatlarını alır ; burada 630, x eksenini ve 420, y eksenini belirtir. Dolayısıyla, bu yöntem fare işaretçinizi geçerli konumdan belirtilen x ve y kesişim noktasına hareket ettirecektir.

Adım 2) Sonra, fare düğmesine basmamız gerekiyor. Biz yöntem kullanabilirsiniz mousePress gibi robot.mousePress (InputEvent.BUTTON1_DOWN_MASK) .

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

TestNG kullanarak kod çalıştırma:

Testng kullanarak kod çalıştırmak, testNG'nin maven bağımlılığını veya TestNG jar dosyasının başvurulan kitaplığını gerektirir.

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

 org.testng  test  6.1.1  

Maven bağımlılığı veya jar dosyası ekledikten sonra. TestNG'nin Test notlarını içe aktarmanız gerekir. Her şey bittiğinde, program koduna sağ tıklayın ve Farklı Çalıştır'a tıklayın ve ardından TestNG'ye tıklayın.

… Ve bu kodun testNG API kullanarak yürütülmeye başlayacağı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 {@Ölçekpublic static void execution () InterruptedException, AWTException {atarWebDriver sürücüsü = yeni FirefoxDriver ();driver.manage (). window (). maximize ();driver.get ("http://spreadsheetpage.com/index.php/file/C35/P10/"); // örnek urlRobot robot = yeni Robot ();robot.mouseMove (630, 420); // fare noktasını belirli bir yere taşırobot.delay (1500); // gecikme, kodun bir sonraki adımı yürütmeden önce belirtilen milisaniye kadar beklemesidirrobot.mousePress (InputEvent.BUTTON1_DOWN_MASK); // sol tıklamaya basınrobot.mouseRelease (InputEvent.BUTTON1_DOWN_MASK); // sol tıklamayı bırakrobot.delay (1500);robot.keyPress (KeyEvent.VK_DOWN); // Kaydet radyo düğmesini seçmek için klavyenin ok tuşuna basınThread.sleep (2000);robot.keyPress (KeyEvent.VK_ENTER);// seçilen eylemin üzerinde gerçekleştirmek için klavyenin enter tuşuna basın}}

Nasıl çalıştığını görmek için bu videoyu kontrol edin

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 Pencere örneğinde çalışır. Örneğin, bir kodun herhangi bir robot sınıfı olayı gerçekleştirdiğini ve kod yürütme sırasında kullanıcının başka bir ekrana geçtiğini varsayalım, bu durumda anahtar kelime / fare olayı bu ekranda gerçekleşecektir.
  2. MouseMove gibi yöntemlerin çoğu ekran çözünürlüğüne bağlıdır, bu nedenle 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ı oluşturmak için kullanılır.

Robot'un birincil amacı, Java platformunda selenyum otomatikleştirilmiş testler proje derlemesini desteklemektir.

Bu makale, önde gelen bir çokuluslu şirkette test otomasyon mühendisi olan Ramandeep Singh tarafından hazırlanmıştır.