Kelas Robot di Selenium Webdriver

Isi kandungan:

Anonim

Kelas Robot

Kelas Robot di Selenium digunakan untuk memungkinkan pengujian automatik untuk pelaksanaan platform Java. Ini menghasilkan peristiwa input dalam sistem asli untuk automasi ujian, demo berjalan sendiri dan aplikasi lain di mana pengguna memerlukan kawalan ke atas tetikus dan papan kekunci. Kelas robot mudah dilaksanakan dan dapat disatukan dengan mudah dengan kerangka automatik.

Mengapa Kelas Robot?

Kelas Robot digunakan di Selenium kerana, dalam ujian automasi Selenium tertentu, pengguna memerlukan kawalan ke atas papan kekunci atau tetikus untuk berinteraksi dengan tetingkap OS seperti memuat turun pop timbul, mencetak pop timbul, dll. Dan aplikasi asli seperti notepad, kalkulator, dll. Selenium Webdriver tidak dapat menangani pop-up / aplikasi ini, jadi dalam Java versi 1.3, kelas robot diperkenalkan yang dapat menangani pop-up / aplikasi OS.

Dalam tutorial ini, anda akan belajar,

  • Kelebihan Kelas Robot
  • Dokumentasi Kelas Robot
  • Memahami kaedah dan penggunaan dalaman Kelas Robot
  • Cara melaksanakan kod kelas robot menggunakan testNG
  • Kelemahan Kelas Robot

Kelebihan Kelas Robot

  1. Kelas Robot dapat mensimulasikan Papan Kekunci dan Acara Tetikus
  2. Kelas Robot dapat membantu memuat naik / memuat turun fail semasa menggunakan pemacu web selenium
  3. Kelas Robot dapat digabungkan dengan mudah dengan kerangka automasi semasa (kata kunci, berdasarkan data atau hibrid)

Apa itu Dokumentasi Kelas Robot?

The Robot Kelas Dokumentasi dalam Selenium membantu pengguna untuk memahami definisi asas, sintaksis dan penggunaan semua kaedah dan fungsi yang tersedia dalam kelas robot dalam pakej Java AWT. Pengguna dapat melihat dokumentasi di laman web Oracle Rasmi. Pengguna juga boleh membuat dokumentasi pada mesin tempatan mereka sendiri.

Untuk membuat dokumentasi pada mesin tempatan, ikuti langkah-langkah di bawah-

Langkah 1) Anda akan menemui fail src.zip dalam folder JDK. Salin src.zip dan ekstrak yang sama di beberapa folder atau direktori lain (katakan D: atau E:)

Langkah 2) Ekstrak folder src dan Navigasi ke (path hingga folder src) / src / java / awt

Langkah 3) Salin lokasi semasa folder awt dan buka command prompt.

Langkah 4) Dalam cmd, ubah lokasi direktori anda sekarang ke folder awt dan ketik 'javadoc * .java' seperti gambar di bawah

Tunggu sebentar sehingga sistem diproses, setelah selesai anda akan melihat beberapa fail HTML dalam folder awt.

Langkah 5) Buka index.html

Langkah 6) Di sini anda mempunyai dokumentasi lengkap pakej awt, dari bar navigasi kiri klik pada pautan hipotik 'Robot' (Lihat 1 yang ditandakan di bawah gambar)

Di sini anda juga dapat melihat semua kaedah dan antara muka Kelas Robot (Lihat 2 yang ditandakan pada gambar di atas).

Memahami kaedah dan penggunaan dalaman Kelas Robot

Kaedah Kelas Robot boleh digunakan untuk berinteraksi dengan acara papan kekunci / tetikus semasa melakukan automasi penyemak imbas. Sebagai alternatif, AutoIT boleh digunakan, tetapi kekurangannya ialah menghasilkan fail yang boleh dieksekusi (exe) yang hanya akan berfungsi pada windows, jadi itu bukan pilihan yang baik untuk digunakan.

Beberapa kaedah Robot Class yang biasa digunakan dan popular semasa automasi web:

  • keyPress (): Contoh: robot.keyPress (KeyEvent.VK_DOWN): Kaedah ini dengan menekan anak panah ke bawah papan kekunci
  • mousePress (): Contoh : robot.mousePress (InputEvent.BUTTON3_DOWN_MASK): Kaedah ini akan menekan klik kanan tetikus anda.
  • mouseMove (): Contoh : robot.mouseMove (point.getX (), point.getY ()): Ini akan memindahkan penunjuk tetikus ke koordinat X dan Y yang ditentukan.
  • keyRelease (): Contoh: robot.keyRelease (KeyEvent.VK_DOWN): Kaedah ini dengan melepaskan anak panah ke bawah papan kekunci
  • mouseRelease (): Contoh: robot.mouseRelease (InputEvent.BUTTON3_DOWN_MASK): Kaedah ini akan melepaskan klik kanan tetikus anda

Contoh kod untuk mengautomasikan kes penggunaan biasa menggunakan Robot Class

  • Mari kita ambil contoh laman web http://spreadsheetpage.com/index.php/file/C35/P10/ di mana setelah anda mengklik elemen web ( .//a[@href=contains(text(),'yearly- kalendar.xls '] ) muncul pop timbul muat turun OS.
  • Untuk menangani ini, kami menggunakan kelas Robot (dengan membuat contoh Kelas Robot dalam kod anda, katakan Robot robot = Robot baru () ). Kelas robot yang kami hadirkan dalam pakej AWT JDK.
  • Untuk menekan kekunci anak panah bawah Papan Kekunci yang kami gunakan ( robot.keyPress (KeyEvent.VK_DOWN))
  • Untuk menekan kekunci papan kekunci TAB (kami menggunakan robot.keyPress (KeyEvent.VK_TAB))
  • Untuk menekan kekunci Enter yang kami gunakan ( robot.keyPress (KeyEvent.VK_ENTER)).

Berikut adalah contoh 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;kelas Latihan 1 {utama kekosongan statik awam (String [] args) melemparkan AWTException, InterruptException {Pemacu WebDriver = FirefoxDriver baru ();driver.get ("http://spreadsheetpage.com/index.php/file/C35/P10/"); // contoh urldriver.findElement (By.xpath (".// a [@ href = mengandungi (teks (), 'tahunan-kalendar.xls')]")). klik ();Robot robot = Robot baru (); // Kelas robot membuang Pengecualian AWTThread.sleep (2000); // Thread.sleep melemparkan InterruptExceptionrobot.keyPress (KeyEvent.VK_DOWN); // tekan butang panah ke bawah papan kekunci untuk menavigasi dan pilih Simpan butang radioThread.sleep (2000); // tidur hanya digunakan untuk mempamerkan setiap acara secara berasinganrobot.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 kekunci tekan enter untuk melakukan tindakan yang dipilih di atas}} 

Lihat video ini untuk melihatnya beraksi

Cara melaksanakan kod Kelas Robot menggunakan TestNG

Oleh kerana, sekarang anda mengetahui kaedah asas Kelas Robot jadi mari kita fahami beberapa kaedah yang lebih kompleks -

Katakan anda tidak mahu menggunakan kaedah klik untuk mengklik elemen web.

Dalam kes sedemikian, anda boleh menggunakan kaedah mouseMove dari kelas Robot.

Langkah 1) kaedah mouseMove mengambil koordinat x dan y sebagai parameter seperti robot.mouseMove (630, 420) di mana 630 menunjukkan paksi-x dan 420 menunjukkan paksi-y. Jadi, kaedah ini akan mengalihkan penunjuk tetikus anda dari lokasi semasa ke titik persimpangan x dan y yang disebutkan.

Langkah 2) Seterusnya, kita perlu menekan butang tetikus. Kita boleh menggunakan kaedah mousePress seperti robot.mousePress (InputEvent.BUTTON1_DOWN_MASK) .

Langkah 3) Setelah menekan, tetikus perlu dilepaskan. Kita boleh menggunakan robot.mouseRelease (InputEvent.BUTTON1_DOWN_MASK ) untuk melepaskan klik kiri tetikus.

Menjalankan kod menggunakan testNG:

Menjalankan kod menggunakan Testng memerlukan ketergantungan dari testNG atau pustaka yang dirujuk dari fail jar TestNG.

Ketergantungan maven TestNG:

 org.testng  testng  6.1.1  

Setelah menambahkan ketergantungan maven atau fail jar. Anda perlu mengimport Ujian anotasi testNG. Setelah semuanya selesai, klik kanan pada kod program dan klik Run As kemudian klik pada TestNG

... dan anda akan mendapati bahawa kod akan memulakan pelaksanaannya menggunakan testNG API.

Inilah kodnya

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;kelas awam Excersise1 {@ Ujianpelaksanaan void statik awam () melemparkan InterruptException, AWTException {Pemacu 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); // gerakkan titik tetikus ke lokasi tertenturobot.delay (1500); // kelewatan adalah untuk membuat kod menunggu untuk milisaat yang disebut sebelum melaksanakan langkah seterusnyarobot.mousePress (InputEvent.BUTTON1_DOWN_MASK); // tekan klik kirirobot.mouseRelease (InputEvent.BUTTON1_DOWN_MASK); // lepaskan klik kirirobot.delay (1500);robot.keyPress (KeyEvent.VK_DOWN); // tekan kekunci anak panah papan kekunci untuk memilih butang Simpan radioThread.sleep (2000);robot.keyPress (KeyEvent.VK_ENTER);// tekan kekunci tekan enter untuk melakukan tindakan yang dipilih di atas}}

Lihat video ini untuk melihatnya beraksi

Kelemahan Kelas Robot

Rangka kerja robot mempunyai beberapa kelemahan yang dinyatakan di bawah:

  1. Peristiwa kata kunci / tetikus hanya akan berfungsi pada contoh semasa Window. Misalnya, kod melakukan sebarang peristiwa kelas robot, dan semasa pelaksanaan kod pengguna telah berpindah ke beberapa layar lain maka peristiwa kata kunci / tetikus akan berlaku di layar tersebut.
  2. Sebilangan besar kaedah seperti mouseMove bergantung pada resolusi skrin sehingga ada kemungkinan kod yang bekerja pada satu mesin mungkin tidak berfungsi pada yang lain.

Ringkasan

Kelas robot dalam pakej AWT digunakan untuk menghasilkan acara papan kekunci / tetikus untuk berinteraksi dengan tetingkap OS dan aplikasi asli.

Tujuan utama Robot adalah untuk menyokong projek ujian automatik selenium yang dibina di platform Java

Artikel ini disumbangkan oleh Ramandeep Singh, yang merupakan jurutera automasi ujian di MNC terkemuka.