Dalam tutorial ini, kita akan belajar menangani Event Keyboard dan Mouse di Selenium Webdriver
Kelas Aksi di Selenium
Kelas Aksi di Selenium adalah fitur bawaan yang disediakan oleh selenium untuk menangani acara keyboard dan mouse. Ini mencakup berbagai operasi seperti beberapa peristiwa yang diklik dengan tombol kontrol, peristiwa seret dan lepas, dan banyak lagi. Operasi dari kelas tindakan ini dilakukan menggunakan API interaksi pengguna tingkat lanjut di Selenium Webdriver.
Menangani Acara Keyboard & Mouse
Penanganan peristiwa keyboard dan mouse khusus dilakukan menggunakan API Interaksi Pengguna Tingkat Lanjut . Ini berisi kelas Tindakan dan Tindakan yang diperlukan saat menjalankan peristiwa ini. Berikut ini adalah acara keyboard dan mouse yang paling umum digunakan yang disediakan oleh kelas Actions.
metode | Deskripsi |
---|---|
clickAndHold () | Klik (tanpa melepaskan) di lokasi mouse saat ini. |
contextClick () | Melakukan klik konteks di lokasi mouse saat ini. (Aksi Mouse Klik Kanan) |
klik dua kali() | Melakukan klik dua kali di lokasi mouse saat ini. |
dragAndDrop (sumber, target) | Melakukan klik dan tahan di lokasi elemen sumber, pindah ke lokasi elemen target, lalu lepaskan mouse. Parameter: elemen- sumber untuk meniru tombol ke bawah di.target- elemen tempat berpindah dan melepaskan mouse di. |
dragAndDropBy (sumber, x-offset, y-offset) | Melakukan klik-dan-tahan di lokasi elemen sumber, bergerak dengan offset tertentu, lalu melepaskan mouse. Parameter : sumber- elemen untuk meniru tombol di.xOffset- offset bergerak horizontal.yOffset- offset perpindahan vertikal. |
keyDown (modifier_key) | Melakukan penekanan tombol pengubah. Tidak melepaskan tombol pengubah - interaksi selanjutnya mungkin menganggap tombol itu terus ditekan. Parameter : modifier_key - salah satu tombol pengubah (Keys.ALT, Keys.SHIFT, atau Keys.CONTROL) |
keyUp (pengubah _key) | Melakukan pelepasan kunci. Parameter : modifier_key - salah satu tombol pengubah (Keys.ALT, Keys.SHIFT, atau Keys.CONTROL) |
moveByOffset (x-offset, y-offset) | Memindahkan mouse dari posisi saat ini (atau 0,0) dengan offset yang diberikan. Parameter : x-offset- offset horizontal. Nilai negatif berarti menggerakkan mouse ke kiri.y-offset- offset vertikal. Nilai negatif berarti menggerakkan mouse ke bawah. |
moveToElement (toElement) | Memindahkan mouse ke tengah elemen. Parameter : elemen toElement- untuk dipindahkan. |
melepaskan() | Melepaskan tombol kiri mouse yang tertekan di lokasi mouse saat ini |
sendKeys (onElement, charsequence) | Mengirim serangkaian penekanan tombol ke elemen. Parameters : onElement - elemen yang akan menerima keystrokes, biasanya text fieldcharsequence - nilai string apapun yang mewakili urutan keystrokes yang akan dikirim |
Dalam contoh berikut, kita akan menggunakan metode moveToElement () untuk mengarahkan mouse ke salah satu baris tabel Mercury Tours. Lihat contoh di bawah ini.
Sel yang ditunjukkan di atas adalah bagian dari elemen
Langkah 1: Impor kelas Tindakan dan Tindakan .
Langkah 2: Buat instance objek Actions baru.
Langkah 3: Buat instance Action menggunakan objek Actions di langkah 2.
Dalam kasus ini, kita akan menggunakan metode moveToElement () karena kita hanya akan mengarahkan mouse ke tautan "Beranda". Metode build () selalu merupakan metode terakhir yang digunakan sehingga semua tindakan yang terdaftar akan dikompilasi menjadi satu langkah.
Langkah 4: Gunakan metode perform () saat menjalankan objek Action yang kami desain pada Langkah 3.
Di bawah ini adalah seluruh kode WebDriver untuk memeriksa warna latar belakang elemen
paket proyek baru;import org.openqa.selenium. *;impor org.openqa.selenium.firefox.FirefoxDriver;impor org.openqa.selenium.interactions.Action;impor org.openqa.selenium.interactions.Actions;kelas publik PG7 {public static void main (String [] args) {String baseUrl = "http://demo.guru99.com/test/newtours/";System.setProperty ("webdriver.gecko.driver", "C: \\ geckodriver.exe");Driver WebDriver = FirefoxDriver baru ();driver.get (baseUrl);WebElement link_Home = driver.findElement (By.linkText ("Home"));WebElement td_Home = driver.findElement (Oleh.xpath ("// html / body / div"+ "/ tabel / tbody / tr / td"+ "/ tabel / tbody / tr / td"+ "/ tabel / tbody / tr / td"+ "/ table / tbody / tr"));Tindakan pembangun = Tindakan baru (driver);Tindakan mouseOverHome = pembangun.moveToElement (link_Home).membangun();String bgColor = td_Home.getCssValue ("background-color");System.out.println ("Sebelum hover: + bgColor);mouseOverHome.perform ();bgColor = td_Home.getCssValue ("background-color");System.out.println ("Setelah hover: + bgColor);driver.close ();}}
Output di bawah ini dengan jelas menyatakan bahwa warna latar belakang menjadi transparan setelah gerakan mouse di atas.
Membangun Serangkaian Tindakan Ganda
Anda dapat membuat serangkaian tindakan menggunakan kelas Tindakan dan Tindakan . Ingatlah untuk menutup seri dengan metode build (). Perhatikan contoh kode di bawah ini.
public static void main (String [] args) {String baseUrl = "http://www.facebook.com/";Driver WebDriver = FirefoxDriver baru ();driver.get (baseUrl);WebElement txtUsername = driver.findElement (By.id ("email"));Tindakan pembangun = Tindakan baru (driver);Action seriesOfActions = builder.moveToElement (txtUsername).klik().keyDown (txtUsername, Keys.SHIFT).sendKeys (txtUsername, "hello").keyUp (txtUsername, Keys.SHIFT).doubleClick (txtUsername).contextClick ().membangun();seriesOfActions.perform ();}
Ringkasan
- Penanganan peristiwa keyboard dan mouse khusus dilakukan menggunakan API AdvancedUserInteractions.
- Peristiwa Kata Kunci dan Mouse yang sering digunakan adalah doubleClick (), keyUp, dragAndDropBy, contextClick & sendKeys.