Dalam tutorial ini, kita akan belajar mengendalikan Acara Papan Kekunci dan Tetikus di Selenium Webdriver
Kelas Aksi di Selenium
Action Class di Selenium adalah ciri bawaan yang disediakan oleh selenium untuk mengendalikan acara papan kekunci dan tetikus. Ia merangkumi pelbagai operasi seperti beberapa peristiwa dengan mengklik kekunci kawalan, seret dan lepas acara dan banyak lagi. Operasi ini dari kelas tindakan dilakukan menggunakan API interaksi pengguna lanjutan di Selenium Webdriver.
Mengendalikan Acara Papan Kekunci & Tetikus
Mengendalikan acara papan kekunci dan tetikus khas dilakukan menggunakan API Interaksi Pengguna Lanjutan . Ia mengandungi kelas Tindakan dan Tindakan yang diperlukan semasa melaksanakan peristiwa ini. Berikut adalah acara papan kekunci dan tetikus yang paling biasa digunakan oleh kelas Actions.
Kaedah | Penerangan |
---|---|
klikAndHold () | Klik (tanpa melepaskan) di lokasi tetikus semasa. |
konteksKlik () | Melakukan klik konteks di lokasi tetikus semasa. (Tindakan Tetikus Klik Kanan) |
Klik dua kali() | Melakukan klik dua kali di lokasi tetikus semasa. |
dragAndDrop (sumber, sasaran) | Melakukan klik dan tahan di lokasi elemen sumber, bergerak ke lokasi elemen sasaran, kemudian melepaskan tetikus. Parameter: elemen sumber untuk meniru butang turun di bawah. Elemen- elemen untuk bergerak ke dan melepaskan tetikus di. |
dragAndDropBy (sumber, x-offset, y-offset) | Melakukan klik dan tahan di lokasi elemen sumber, bergerak dengan ofset tertentu, kemudian melepaskan tetikus. Parameter : elemen sumber untuk meniru butang turun pada. XOffset- mengimbangi bergerak mendatar. |
keyDown (pengubah_kunci) | Melakukan penekanan kekunci pengubah. Tidak melepaskan kunci pengubah - interaksi seterusnya mungkin menganggapnya terus ditekan. Parameter : modifier_key - mana-mana kunci pengubah (Keys.ALT, Keys.SHIFT, atau Keys.CONTROL) |
keyUp (pengubah _key) | Melakukan pelepasan kunci. Parameter : modifier_key - mana-mana kunci pengubah (Keys.ALT, Keys.SHIFT, atau Keys.CONTROL) |
moveByOffset (x-ofset, y-offset) | Gerakkan tetikus dari kedudukannya sekarang (atau 0,0) dengan ofset yang diberikan. Parameter : x-offset- mengimbangi mendatar. Nilai negatif bermaksud menggerakkan tetikus ke kiri. Offset menegak. Nilai negatif bermaksud menggerakkan tetikus ke bawah. |
moveToElement (keElement) | Gerakkan tetikus ke tengah elemen. Parameter : toElement- elemen untuk bergerak ke. |
pelepasan () | Melepaskan butang tetikus kiri yang tertekan di lokasi tetikus semasa |
sendKeys (onElement, charsequence) | Menghantar satu siri ketukan kekunci ke elemen. Parameter : onElement - elemen yang akan menerima penekanan kekunci, biasanya karangan teks teks - sebarang nilai rentetan yang mewakili urutan penekanan kekunci yang akan dihantar |
Dalam contoh berikut, kita akan menggunakan kaedah moveToElement () untuk beralih ke satu baris jadual Mercury Tours. Lihat contoh di bawah.
Sel yang ditunjukkan di atas adalah bahagian elemen
Langkah 1: Import kelas Tindakan dan Tindakan .
Langkah 2: Buat objek Objek baru.
Langkah 3: Buat Tindakan menggunakan objek Tindakan pada langkah 2.
Dalam kes ini, kita akan menggunakan kaedah moveToElement () kerana kita hanya akan mengarahkan pautan "Beranda" pada tetikus. Kaedah build () selalu merupakan kaedah terakhir yang digunakan sehingga semua tindakan yang disenaraikan akan disusun menjadi satu langkah.
Langkah 4: Gunakan kaedah perform () ketika melaksanakan objek Tindakan yang kami reka dalam Langkah 3.
Di bawah ini adalah keseluruhan kod WebDriver untuk memeriksa warna latar elemen
pakej projek baru;import org.openqa.selenium. *;import org.openqa.selenium.firefox.FirefoxDriver;import org.openqa.selenium.interactions.Action;import org.openqa.selenium.interactions.Actions;kelas awam PG7 {utama kekosongan statik awam (String [] args) {String baseUrl = "http://demo.guru99.com/test/newtours/";System.setProperty ("webdriver.gecko.driver", "C: \\ geckodriver.exe");Pemacu WebDriver = FirefoxDriver baru ();driver.get (baseUrl);WebElement link_Home = driver.findElement (By.linkText ("Rumah"));WebElement td_Home = pemacu.findElement (Oleh.xpath ("// html / body / div"+ "/ meja / tbody / tr / td"+ "/ meja / tbody / tr / td"+ "/ meja / tbody / tr / td"+ "/ meja / tbody / tr"));Pembangun tindakan = tindakan baru (pemandu);Tindakan tetikusOverHome = pembina.moveToElement (link_Rumah).bangun ();Rentetan bgColor = td_Home.getCssValue ("background-color");System.out.println ("Sebelum menuding: + bgColor);mouseOverHome.perform ();bgColor = td_Home.getCssValue ("latar belakang-warna");System.out.println ("After hover: + bgColor);pemandu.tutup ();}}
Output di bawah ini dengan jelas menyatakan bahawa warna latar menjadi telus setelah penukaran tetikus.
Membina Siri Pelbagai Tindakan
Anda boleh membina rangkaian tindakan menggunakan kelas Tindakan dan Tindakan . Ingatlah untuk menutup siri dengan kaedah build (). Pertimbangkan contoh kod di bawah.
utama kekosongan statik awam (String [] args) {String baseUrl = "http://www.facebook.com/";Pemacu WebDriver = FirefoxDriver baru ();driver.get (baseUrl);WebElement txtUsername = driver.findElement (By.id ("e-mel"));Pembangun tindakan = tindakan baru (pemandu);Siri aksiOfActions = pembina.moveToElement (txtUsername).klik ().keyDown (txtUsername, Keys.SHIFT).sendKeys (txtUsername, "hello").keyUp (txtUsername, Keys.SHIFT).doubleClick (txtUsername).contextKlik ().bangun ();seriesOfActions.perform ();}
Ringkasan
- Menangani acara papan kekunci dan tetikus khas dilakukan menggunakan AdvancedUserInteractions API.
- Peristiwa Kata Kunci dan Tetikus yang sering digunakan ialah doubleClick (), keyUp, dragAndDropBy, contextClick & sendKeys.