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.

Menangani Acara Keyboard & Mouse

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.

Menangani Acara Keyboard & Mouse

Langkah 2) Buat instance objek Tindakan baru.

Menangani Acara Keyboard & Mouse

Langkah 3) Buat instance Action menggunakan objek Actions di langkah 2.

Menangani Acara Keyboard & Mouse

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.

Menangani Acara Keyboard & Mouse

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.

Kelas Aksi di Selenium

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.

Membangun Serangkaian Tindakan Berganda

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() ;

}

Membangun Serangkaian Tindakan Berganda

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.