Kelas Robot
Kelas Robot di Selenium digunakan untuk mengaktifkan pengujian otomatis untuk implementasi platform Java. 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?
Robot Class digunakan di Selenium karena, dalam tes otomasi Selenium tertentu, pengguna memerlukan kontrol atas keyboard atau mouse untuk berinteraksi dengan OS windows seperti download pop-up, print pop-up, dll. Dan aplikasi asli seperti notepad, kalkulator, dll. Selenium Webdriver tidak dapat menangani pop-up / aplikasi ini, jadi di Java versi 1.3, kelas robot diperkenalkan yang dapat menangani pop-up / aplikasi OS.
Dalam tutorial ini, Anda akan belajar,
- Manfaat Kelas Robot
- Dokumentasi Kelas Robot
- Memahami metode internal dan penggunaan Robot Class
- Cara mengeksekusi kode kelas robot menggunakan testNG
- Kelebihan Kelas Robot
Manfaat Kelas Robot
- Kelas Robot dapat mensimulasikan Acara Keyboard dan Mouse
- Robot Class dapat membantu dalam mengupload / mendownload file dengan menggunakan selenium web driver
- Kelas Robot dapat dengan mudah diintegrasikan dengan kerangka kerja otomasi saat ini (kata kunci, data-driven atau hybrid)
Apa itu Dokumentasi Kelas Robot?
The Robot Kelas Dokumentasi di Selenium membantu pengguna untuk memahami definisi dasar, sintaks dan penggunaan semua metode dan fungsi yang tersedia di kelas robot dalam paket Java AWT. Pengguna dapat melihat dokumentasi di situs resmi Oracle. Pengguna juga dapat membuat dokumentasi di komputer lokal mereka sendiri.
Untuk membuat dokumentasi di komputer lokal, ikuti langkah-langkah di bawah ini-
Langkah 1) Anda akan menemukan file src.zip di folder JDK. Salin src.zip dan ekstrak yang sama di beberapa folder atau direktori lain (katakanlah D: atau E :)
Langkah 2) Ekstrak folder src dan Arahkan ke (path sampai 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 diproses, setelah selesai Anda akan melihat beberapa file HTML di folder awt.
Langkah 5) Buka index.html
Langkah 6) Di sini Anda memiliki dokumentasi lengkap dari paket awt, dari bilah navigasi kiri klik hyperlink 'Robot' (Lihat 1 ditandai pada gambar di bawah).
Di sini Anda juga dapat melihat semua metode dan antarmuka Kelas Robot (Lihat 2 ditandai pada gambar di atas).
Memahami metode internal dan penggunaan Robot Class
Metode Kelas Robot dapat digunakan untuk berinteraksi dengan acara keyboard / mouse saat melakukan otomatisasi browser. Sebagai alternatif, AutoIT dapat digunakan, tetapi kekurangannya adalah ia menghasilkan file yang dapat dieksekusi (exe) yang hanya akan berfungsi di windows, jadi ini bukan pilihan yang baik untuk digunakan.
Beberapa metode Kelas Robot yang umum dan populer digunakan selama otomatisasi web:
- keyPress (): Contoh: robot.keyPress (KeyEvent.VK_DOWN): Metode ini dengan menekan tombol panah bawah dari Keyboard
- mousePress (): Contoh : robot.mousePress (InputEvent.BUTTON3_DOWN_MASK): Metode ini akan menekan klik kanan mouse Anda.
- mouseMove (): Contoh : robot.mouseMove (point.getX (), point.getY ()): Ini akan memindahkan penunjuk mouse ke koordinat X dan Y yang ditentukan.
- keyRelease (): Contoh: robot.keyRelease (KeyEvent.VK_DOWN): Metode ini dengan melepaskan tombol panah bawah dari Keyboard
- mouseRelease (): Contoh: robot.mouseRelease (InputEvent.BUTTON3_DOWN_MASK): Metode ini akan melepaskan klik kanan mouse Anda
Kode contoh untuk mengotomatiskan 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 unduhan OS muncul.
- Untuk menangani ini, kami menggunakan kelas Robot (dengan membuat instance Kelas Robot di kode Anda, katakan Robot robot = new Robot () ). Robot sekelas kami hadir dalam paket AWT JDK.
- Untuk menekan tombol panah bawah dari Keyboard yang kami gunakan ( robot.keyPress (KeyEvent.VK_DOWN))
- Untuk menekan tombol TAB pada keyboard (kami menggunakan robot.keyPress (KeyEvent.VK_TAB))
- Untuk menekan tombol Enter kami menggunakan ( robot.keyPress (KeyEvent.VK_ENTER)).
Berikut ini contoh kode
impor java.awt.AWTException;impor java.awt.Robot;impor java.awt.event.KeyEvent;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;impor org.openqa.selenium.firefox.FirefoxDriver;class Excercise1 {public static void main (String [] args) melempar AWTException, InterruptedException {Driver WebDriver = FirefoxDriver baru ();driver.get ("http://spreadsheetpage.com/index.php/file/C35/P10/"); // contoh urldriver.findElement (By.xpath (".// a [@ href = contains (text (), 'yearly-calendar.xls')]")). click ();Robot robot = Robot baru (); // Kelas robot melempar Pengecualian AWTThread.sleep (2000); // Thread.sleep melempar InterruptedExceptionrobot.keyPress (KeyEvent.VK_DOWN); // tekan tombol panah bawah dari keyboard untuk menavigasi dan pilih Simpan tombol radioThread.sleep (2000); // sleep hanya digunakan untuk menampilkan setiap acara secara terpisahrobot.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);// tekan tombol enter pada keyboard untuk melakukan tindakan yang dipilih di atas}}
Lihat 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 itu, Anda dapat menggunakan metode mouseMove dari kelas Robot.
Langkah 1) Metode mouseMove mengambil koordinat x dan y sebagai parameter seperti robot.mouseMove (630, 420) di mana 630 menunjukkan sumbu x dan 420 menunjukkan sumbu y. Jadi, metode ini akan memindahkan penunjuk mouse Anda dari lokasi saat ini ke titik persimpangan x dan y yang disebutkan.
Langkah 2) Selanjutnya, kita perlu menekan tombol mouse. Kita bisa menggunakan metode mousePress seperti robot.mousePress (InputEvent.BUTTON1_DOWN_MASK) .
Langkah 3) Setelah ditekan, mouse perlu dilepaskan. Kita dapat menggunakan robot.mouseRelease (InputEvent.BUTTON1_DOWN_MASK ) untuk melepaskan klik kiri mouse.
Menjalankan kode menggunakan testNG:
Menjalankan kode menggunakan Testng memerlukan ketergantungan maven dari testNG atau pustaka referensi dari file jar TestNG.
Ketergantungan ahli TestNG:
org.testng testng 6.1.1
Setelah menambahkan dependensi maven atau file jar. Anda perlu mengimpor anotasi Uji 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 mulai dieksekusi menggunakan API testNG.Ini kodenya
impor java.awt.AWTException;impor java.awt.Robot;import java.awt.event.InputEvent;impor java.awt.event.KeyEvent;import org.openqa.selenium.WebDriver;impor org.openqa.selenium.firefox.FirefoxDriver;import org.testng.annotations.Test;public class Excersise1 {@Ujipublic static void execution () melempar InterruptedException, AWTException {Driver WebDriver = FirefoxDriver baru ();driver.manage (). window (). maksimalkan ();driver.get ("http://spreadsheetpage.com/index.php/file/C35/P10/"); // contoh urlRobot robot = Robot baru ();robot.mouseMove (630, 420); // pindahkan titik mouse ke lokasi tertenturobot.delay (1500); // penundaan adalah membuat kode menunggu milidetik yang disebutkan sebelum menjalankan langkah berikutnyarobot.mousePress (InputEvent.BUTTON1_DOWN_MASK); // tekan klik kirirobot.mouseRelease (InputEvent.BUTTON1_DOWN_MASK); // lepaskan klik kirirobot.delay (1500);robot.keyPress (KeyEvent.VK_DOWN); // tekan tombol panah keyboard untuk memilih tombol radio SimpanThread.sleep (2000);robot.keyPress (KeyEvent.VK_ENTER);// tekan tombol enter pada keyboard untuk melakukan tindakan yang dipilih di atas}}
Lihat video ini untuk melihatnya beraksi
Kekurangan Kelas Robot
Kerangka robot memiliki beberapa kelemahan yang disebutkan di bawah ini:
- Peristiwa kata kunci / mouse hanya akan bekerja pada contoh Window saat ini. Misalkan sebuah kode sedang melakukan event kelas robot, dan selama eksekusi kode pengguna telah berpindah ke beberapa layar lain maka event kata kunci / mouse akan terjadi pada layar tersebut.
- 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 tes otomatis selenium yang dibangun di platform Java
Artikel ini dikontribusikan oleh Ramandeep Singh, yang merupakan insinyur otomatisasi pengujian di MNC terkemuka.