Kelas Robot di Selenium Driver web
Apa itu Kelas Robot Selenium?
Kelas Robot in Selenium digunakan untuk mengaktifkan pengujian otomatis untuk implementasi Java platform. Ini menghasilkan peristiwa masukan dalam sistem asli untuk otomatisasi pengujian, demo yang berjalan sendiri, dan aplikasi lain di mana pengguna memerlukan kontrol atas mouse dan keyboard. Kelas robot mudah diimplementasikan dan dapat dengan mudah diintegrasikan dengan kerangka kerja otomatis.
Mengapa Kelas Robot?
Kelas Robot digunakan dalam Selenium karena, secara pasti Selenium pengujian otomatisasi, pengguna memerlukan kontrol atas keyboard atau mouse untuk berinteraksi dengan jendela OS seperti pop-up unduhan, pop-up cetak, dll. dan aplikasi asli seperti notepad, kalkulator, dll. Selenium Webdriver tidak dapat menangani pop-up/aplikasi ini, jadi masuk Java versi 1.3, diperkenalkan kelas robot yang dapat menangani pop-up/aplikasi OS.
Dokumentasi Kelas Robot
The Dokumentasi Kelas Robot in Selenium membantu pengguna untuk memahami definisi dasar, sintaksis, dan penggunaan semua metode dan fungsi yang tersedia di kelas robot Java paket AWT. Pengguna dapat melihat dokumentasi di Resmi Oracle situs web. Pengguna juga dapat membuat sendiri dokumentasi di mesin lokalnya.
Untuk membuat dokumentasi di mesin lokal, ikuti langkah-langkah di bawah ini-
Langkah 1) Anda akan menemukan file src.zip di folder JDK. Salin src.zip dan ekstraktracsama halnya di folder atau direktori lain (misalnya D: atau E:).
Langkah 2) ExtracMasuk ke folder src dan navigasikan ke (jalur hingga folder src)/src/java/awt
Langkah 3) Salin lokasi folder awt saat ini dan buka command prompt.
Langkah 4) Di cmd, ubah lokasi direktori Anda saat ini ke folder awt dan ketik 'javadoc *.java' seperti yang ditunjukkan di bawah ini
Tunggu beberapa saat hingga sistem memproses, setelah selesai Anda akan melihat beberapa file HTML di folder awt.
Langkah 5) Buka indeks.html
Langkah 6) Ini Anda memiliki dokumentasi lengkap paket awt, dari bilah navigasi kiri klik hyperlink 'Robot' (Lihat 1 yang ditandai pada gambar di bawah).
Di sini Anda juga dapat melihat semua metode dan antarmuka Kelas Robot (Lihat 2 yang ditandai pada gambar di atas).
Metode Kelas Robot di Selenium dan Penggunaan
Metode Kelas Robot dapat digunakan untuk berinteraksi dengan peristiwa keyboard/mouse saat melakukan otomatisasi browser. kalau tidak TI Otomatis dapat digunakan, tetapi kekurangannya adalah ia menghasilkan file yang dapat dieksekusi (exe) yang hanya dapat bekerja di windows, jadi ia bukan pilihan yang baik untuk digunakan.
Beberapa metode Kelas Robot yang umum dan populer digunakan selama otomatisasi web:
Metode 1: Tekan tombol():
robot.keyPress(KeyEvent.VK_DOWN): Metode ini dengan menekan tombol panah bawah pada Keyboard
Metode 2: mousePress():
robot.mousePress(InputEvent.BUTTON3_DOWN_MASK): Cara ini akan menekan klik kanan mouse anda.
Metode 3: gerakan mouse():
robot.mouseMove(point.getX(), point.getY()): Ini akan memindahkan penunjuk mouse ke koordinat X dan Y yang ditentukan.
Metode 4: pelepasan kunci():
robot.keyRelease(KeyEvent.VK_DOWN): Metode ini dengan melepaskan tombol panah bawah pada Keyboard
Metode 5: rilis mouse():
robot.mouseRelease(InputEvent.BUTTON3_DOWN_MASK): Cara ini akan melepaskan klik kanan mouse anda
Contoh kode untuk mengotomatisasi kasus penggunaan umum menggunakan Kelas Robot
- Mari kita ambil contoh situs web http://spreadsheetpage.com/index.php/file/C35/P10/ dimana setelah Anda mengklik elemen web (
.//a[@href=contains(text(),'yearly-calendar.xls']) pop-up pengunduhan OS muncul.
- Untuk menangani ini kami menggunakan kelas Robot (dengan membuat instance Kelas Robot dalam kode Anda, katakanlah Robot robot = Robot baru()) . Kelas robot kami hadir dalam paket AWT JDK.
| Tombol Keyboard | metode |
|---|---|
| Untuk menekan tombol panah bawah | kami menggunakan (robot.keyPress(KeyEvent.VK_DOWN)) |
| Untuk menekan tombol TAB | kami menggunakan (robot.keyPress(KeyEvent.VK_TAB)) |
| Untuk menekan tombol Enter | kami menggunakan (robot.keyPress(KeyEvent.VK_ENTER)) |
Contoh Kelas Robot di 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
}
}
Periksa video ini untuk melihatnya beraksi
Cara mengeksekusi kode Kelas Robot menggunakan TestNG
Karena, sekarang Anda mengetahui metode dasar Kelas Robot jadi mari kita pahami beberapa metode yang lebih kompleks โ
Misalkan Anda tidak ingin menggunakan metode klik untuk mengklik elemen web.
Dalam kasus seperti ini, Anda dapat menggunakan metode mouseMove dari kelas Robot.
Langkah 1) Metode mouseMove mengambil koordinat x dan y sebagai parameter robot.mouseMove(630, 420) dimana 630 menunjukkan sumbu x dan 420 menunjukkan sumbu y. Jadi, metode ini akan memindahkan penunjuk tetikus Anda dari lokasi saat ini ke titik potong x dan y yang disebutkan.
Langkah 2) Selanjutnya, kita perlu menekan tombol mouse. Kita bisa menggunakan metode tersebut mousePress 'like' robot.mousePress(InputEvent.BUTTON1_DOWN_MASK) .
Langkah 3) Setelah ditekan, mouse harus dilepaskan. Kita bisa gunakan robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK) untuk melepaskan klik kiri mouse.
Menjalankan kode menggunakan testNG:
Menjalankan kode menggunakan Pengujian membutuhkan ketergantungan maven dari testNG atau pustaka referensi TestNG file toples.
TestNG ketergantungan pakar:
<dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>6.1.1</version> </dependency>
Setelah menambahkan dependensi maven atau file jar. Anda perlu mengimpor anotasi Test dari testNG. Setelah semuanya selesai, cukup klik kanan pada kode program dan klik Run As lalu klik TestNGโฆ dan Anda akan menemukan bahwa kode tersebut akan memulai eksekusinya menggunakan API testNG.
Ini kodenya
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
}
}
Periksa video ini untuk melihatnya beraksi
Manfaat Kelas Robot
- Kelas Robot dapat mensimulasikan Acara Keyboard dan Mouse
- Kelas Robot dapat membantu dalam mengunggah/mengunduh file saat menggunakan driver web Selenium
- Kelas Robot dapat dengan mudah diintegrasikan dengan kerangka otomatisasi saat ini (kata kunci, berbasis data, atau hybrid)
Kekurangan Kelas Robot
Kerangka robot memiliki beberapa kelemahan yang disebutkan di bawah ini:
- Acara kata kunci/mouse hanya akan berfungsi pada instance Window saat ini. Misalnya, suatu kode menjalankan peristiwa kelas robot apa pun, dan selama eksekusi kode, pengguna telah berpindah ke layar lain, maka peristiwa kata kunci/mouse akan terjadi di layar itu.
- Sebagian besar metode seperti mouseMove bergantung pada resolusi layar sehingga ada kemungkinan kode yang berfungsi di satu mesin mungkin tidak berfungsi di mesin lain.
Ringkasan
Kelas robot dalam paket AWT digunakan untuk menghasilkan peristiwa keyboard/mouse untuk berinteraksi dengan jendela OS dan aplikasi asli.
Tujuan utama Robot adalah untuk mendukung proyek pengujian otomatis selenium yang dibangun Java Platform




