Kelas Aksi di Selenium
โก Ringkasan Cerdas
Kelas Aksi di Selenium Menangani peristiwa keyboard dan mouse tingkat lanjut seperti hover, drag-and-drop, klik kanan, dan kombinasi tombol melalui API Interaksi Pengguna Tingkat Lanjut. Tutorial ini menjelaskan kelas Actions dan Action, metode-metode kunci, dan cara menggabungkan beberapa interaksi menjadi satu rangkaian.

Kelas Aksi di Selenium
Kelas Aksi di Selenium adalah fitur bawaan untuk menangani kejadian keyboard dan mouse. Fitur ini mendukung operasi seperti beberapa klik dengan tombol Control, seret dan lepas, dan banyak lagi. Operasi ini dilakukan menggunakan API Interaksi Pengguna Tingkat Lanjut di Selenium Pengemudi Web.
Menangani Acara Keyboard & Mouse
Penanganan kejadian khusus pada keyboard dan mouse dilakukan dengan menggunakan API Interaksi Pengguna Tingkat Lanjut. Ini berisi tindakan ke Tindakan Kelas-kelas yang dibutuhkan untuk menjalankan peristiwa-peristiwa ini. Peristiwa keyboard dan mouse yang paling umum digunakan yang disediakan oleh kelas Actions tercantum di bawah ini.
| metode | Deskripsi |
|---|---|
| klikDanTahan() | Klik (tanpa melepaskan) di lokasi mouse saat ini. |
| konteksKlik() | Melakukan klik kontekstual (klik kanan) pada lokasi mouse saat ini. |
| klik ganda() | Melakukan klik ganda pada lokasi mouse saat ini. |
| dragAndDrop(sumber, target) | Klik dan tahan pada elemen sumber, pindah ke elemen target, lalu lepaskan mouse. Parameter: sumber (elemen yang ditekan), target (elemen tempat mouse dilepaskan). |
| dragAndDropBy(sumber, x-offset, y-offset) | Klik dan tahan pada elemen sumber, bergerak sejauh offset yang diberikan, lalu dilepaskan. Parameter: sumber, xOffset (horizontal), yOffset (vertikal). |
| kunciBawah(pengubah_kunci) | Menekan tombol pengubah tanpa melepaskannya, sehingga interaksi selanjutnya menganggap tombol tersebut tetap ditekan. Parameter: tombol pengubah (Keys.ALT, Keys.SHIFT, atau Keys.CONTROL). |
| keyUp(modifier_key) | Melepaskan tombol pengubah. Parameter: tombol pengubah (Keys.ALT, Keys.SHIFT, atau Keys.CONTROL). |
| moveByOffset(x-offset, y-offset) | Menggerakkan kursor mouse dari posisi saat ini (atau 0,0) sejauh offset yang diberikan. Nilai x negatif menggerakkan kursor ke kiri; nilai y negatif menggerakkan kursor ke atas. |
| pindahKeElemen(keElemen) | Menggerakkan kursor mouse ke tengah elemen. Parameter: elemen tujuan. |
| melepaskan() | Melepaskan tombol kiri mouse yang ditekan pada lokasi saat ini. |
| sendKeys(onElement, urutan karakter) | Mengirim serangkaian penekanan tombol ke suatu elemen. Parameter: onElement (biasanya kolom teks), charsequence (penekanan tombol yang akan dikirim). |
Dalam contoh berikut, kami menggunakan moveToElement() metode untuk mengarahkan kursor ke salah satu Mercury Baris tabel tur.
Sel yang ditunjukkan di atas adalah bagian dari sebuah elemen. Saat tidak dihover, warnanya adalah #FFC455 (oranye). Setelah dihover, warna sel menjadi transparan dan sesuai dengan latar belakang tabel di sekitarnya.
Langkah 1) Impor tindakan ke Tindakan kelas.
Langkah 2) Buat instance objek Tindakan baru.
Langkah 3) Buat instance Action menggunakan objek Actions dari Langkah 2.
Di sini kita menggunakan moveToElement() Metode untuk mengarahkan kursor ke tautan โBerandaโ. build() Metode ini selalu dipanggil terakhir agar semua tindakan yang tercantum digabungkan menjadi satu langkah.
Langkah 4) Gunakan perform() metode untuk mengeksekusi objek Action yang dirancang pada Langkah 3.
Berikut adalah kode WebDriver lengkap yang memeriksa warna latar belakang. elemen sebelum dan sesudah kursor diarahkan ke atasnya.
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();
}
}
Hasil di bawah ini menunjukkan bahwa warna latar belakang menjadi transparan setelah kursor mouse diarahkan ke atasnya.
Membangun Serangkaian Tindakan Berganda
Anda dapat membangun serangkaian tindakan menggunakan kelas Action dan Actions. Ingatlah untuk mengakhiri rangkaian tersebut dengan build() metode. Perhatikan contoh kode di bawah ini.
public static void main(String[] args) {
String baseUrl = "https://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();
}





