Kelas Aksi di Selenium – Klik Mouse & Acara Keyboard
Dalam tutorial ini, kita akan belajar menangani Event Keyboard dan Mouse di Selenium Driver web
Kelas Aksi di Selenium
Kelas Aksi di Selenium adalah fitur bawaan yang disediakan oleh selenium untuk menangani peristiwa keyboard dan mouse. Fitur ini mencakup berbagai operasi seperti beberapa peristiwa yang diklik dengan tombol kontrol, peristiwa drag and drop, dan masih banyak lagi. Operasi-operasi dari kelas tindakan ini dilakukan menggunakan API interaksi pengguna tingkat lanjut di Selenium driver web.
Menangani Acara Keyboard & Mouse
Menangani peristiwa keyboard dan mouse khusus dilakukan dengan menggunakan API Interaksi Pengguna Tingkat Lanjut. Ini berisi tindakan dan Tindakan kelas yang dibutuhkan saat menjalankan peristiwa ini. Berikut ini adalah peristiwa keyboard dan mouse yang paling umum digunakan yang disediakan oleh kelas Actions.
metode | Description |
---|---|
klikDanTahan() | Klik (tanpa melepaskan) di lokasi mouse saat ini. |
konteksKlik() | Melakukan klik konteks di lokasi mouse saat ini. (Aksi Klik Kanan Mouse) |
klik ganda() | Melakukan klik ganda pada lokasi mouse saat ini. |
dragAndDrop(sumber, target) | Melakukan klik-tahan pada lokasi elemen sumber, berpindah ke lokasi elemen target, lalu melepaskan mouse.
Parameter: sumber- elemen untuk ditiru tombol di bawah. target- elemen untuk dipindahkan dan melepaskan mouse. |
dragAndDropBy(sumber, x-offset, y-offset) | Melakukan klik-dan-tahan pada lokasi elemen sumber, bergerak dengan offset tertentu, lalu melepaskan mouse.
Parameters: sumber- elemen untuk ditiru tombol di bawah. xOffset- offset gerakan horizontal. yOffset- offset gerakan vertikal. |
kunciBawah(pengubah_kunci) | Melakukan penekanan tombol pengubah. Tidak melepaskan kunci pengubah – interaksi selanjutnya mungkin menganggap tombol tersebut terus ditekan.
Parameters: modifier_key – salah satu tombol pengubah (Keys.ALT, Keys.SHIFT, atau Keys.CONTROL) |
keyUp(pengubah _key) | Melakukan pelepasan kunci.
Parameters: modifier_key – salah satu tombol pengubah (Keys.ALT, Keys.SHIFT, atau Keys.CONTROL) |
moveByOffset(x-offset, y-offset) | Memindahkan mouse dari posisinya saat ini (atau 0,0) dengan offset yang diberikan.
Parameters: x-offset- offset horizontal. Nilai negatif berarti menggerakkan mouse ke kiri. offset y- offset vertikal. Nilai negatif berarti menggerakkan mouse ke bawah. |
pindahKeElemen(keElemen) | Memindahkan mouse ke tengah elemen.
Parameters: toElement- elemen untuk dipindahkan. |
melepaskan() | Melepaskan tombol kiri mouse yang ditekan pada lokasi mouse saat ini |
sendKeys(onElement, urutan karakter) | Mengirim serangkaian penekanan tombol ke elemen.
Parameters: onElement – elemen yang akan menerima penekanan tombol, biasanya berupa kolom teks charsequence – nilai string apa pun yang mewakili urutan penekanan tombol yang akan dikirim |
Dalam contoh berikut, kita akan menggunakan metode moveToElement() untuk mengarahkan kursor ke salah satu Mercury Barisan meja tur. Lihat contoh di bawah ini.
Sel yang ditunjukkan di atas adalah bagian dari a elemen. Jika tidak diarahkan, warnanya adalah #FFC455 (oranye). Setelah melayang, warna sel menjadi transparan. Warnanya menjadi sama dengan latar belakang biru seluruh meja oranye.
Langkah 1) Impor tindakan dan Tindakan kelas.
Langkah 2) Buat instance objek Tindakan baru.
Langkah 3) Buat instance Action menggunakan objek Actions di langkah 2.
Dalam hal ini, kita akan menggunakan metode moveToElement() karena kita hanya akan mengarahkan mouse ke link “Beranda”. Metode build() selalu merupakan metode terakhir yang digunakan sehingga semua tindakan yang tercantum akan dikompilasi menjadi satu langkah.
Langkah 4) Gunakan metode perform() saat mengeksekusi objek Action yang kita rancang pada Langkah 3.
Di bawah ini adalah seluruh kode WebDriver untuk memeriksa warna latar belakang elemen sebelum dan sesudah mouse-over.
package newproject; import org.openqa.selenium.*; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.interactions.Action; import org.openqa.selenium.interactions.Actions; public class PG7 { public static void main(String[] args) { String baseUrl = "https://demo.guru99.com/test/newtours/"; System.setProperty("webdriver.gecko.driver","C:\\geckodriver.exe"); WebDriver driver = new FirefoxDriver(); driver.get(baseUrl); WebElement link_Home = driver.findElement(By.linkText("Home")); WebElement td_Home = driver .findElement(By .xpath("//html/body/div" + "/table/tbody/tr/td" + "/table/tbody/tr/td" + "/table/tbody/tr/td" + "/table/tbody/tr")); Actions builder = new Actions(driver); Action mouseOverHome = builder .moveToElement(link_Home) .build(); String bgColor = td_Home.getCssValue("background-color"); System.out.println("Before hover: " + bgColor); mouseOverHome.perform(); bgColor = td_Home.getCssValue("background-color"); System.out.println("After hover: " + bgColor); driver.close(); } }
Output di bawah ini dengan jelas menyatakan bahwa warna latar belakang menjadi transparan setelah mouse di atas.
Membangun Serangkaian Tindakan Berganda
Anda dapat membuat serangkaian tindakan menggunakan kelas Action dan Actions. Ingatlah untuk menutup rangkaian dengan metode build(). Perhatikan contoh kode di bawah ini.
public static void main(String[] args) { String baseUrl = "http://www.facebook.com/"; WebDriver driver = new FirefoxDriver(); driver.get(baseUrl); WebElement txtUsername = driver.findElement(By.id("email")); Actions builder = new Actions(driver); Action seriesOfActions = builder .moveToElement(txtUsername) .click() .keyDown(txtUsername, Keys.SHIFT) .sendKeys(txtUsername, "hello") .keyUp(txtUsername, Keys.SHIFT) .doubleClick(txtUsername) .contextClick() .build(); seriesOfActions.perform() ; }
Ringkasan
- Penanganan peristiwa keyboard dan mouse khusus dilakukan menggunakan API AdvancedUserInteractions.
- Kata Kunci dan Peristiwa Mouse yang sering digunakan adalah doubleClick(), keyUp, dragAndDropBy, contextClick & sendKeys.