Saya ingin melakukan fungsi mouseover pada menu drop down. Ketika kita mengarahkan kursor ke menu, itu akan menampilkan opsi baru. Saya mencoba mengklik opsi baru menggunakan xpath. Tetapi tidak dapat mengklik menu secara langsung. Jadi, sebagai cara manual saya mencoba untuk mengarahkan kursor ke menu drop down dan kemudian akan mengklik opsi baru.
Actions action = new Actions(webdriver);
WebElement we = webdriver.findElement(By.xpath("//html/body/div[13]/ul/li[4]/a"));
action.moveToElement(we).build().perform();
java
selenium
selenium-webdriver
mouseover
Pradeep SJ
sumber
sumber
Jawaban:
Ini tidak benar-benar mungkin untuk melakukan tindakan 'mouse hover', sebagai gantinya Anda perlu membuat rantai semua tindakan yang ingin Anda capai dalam sekali jalan. Jadi pindah ke elemen yang mengungkapkan yang lain, lalu selama rantai yang sama, pindah ke elemen yang sekarang terungkap dan klik di atasnya.
Saat menggunakan Action Chains, Anda harus ingat untuk 'melakukannya seperti yang dilakukan pengguna'.
sumber
webdriver.findElement(By... something)
dieksekusi sebelum hal lain (itulah satu-satunya cara hasil mereka dapat diteruskan kemoveElement
). Pada saat itu elemen kedua yang ingin Anda temukan belum terlihat karena yang pertama masih harus di-hover. Untuk memperbaikinya, seperti yang Anda katakan, Anda dapat menyisipkan perantara.perform()
, Kemudian untuk yang keduafindElement
, kursor pertama akanperform
diedit. Solusi yang diberikan mungkin bekerja, tergantung pada implementasi halaman, tetapi ternyata jarak tempuh Anda dan saya berbeda-beda.Tidak satu pun dari jawaban ini yang berfungsi ketika mencoba melakukan hal berikut:
Jika Anda memasukkan perintah 'perform' setelah moveToElement, itu akan pindah ke elemen, dan item sub-menu menunjukkan untuk periode singkat, tetapi itu bukan hover. Elemen tersembunyi segera menghilang sebelum dapat ditemukan menghasilkan ElementNotFoundException. Saya mencoba dua hal:
Ini tidak berhasil untuk saya. Berikut ini bekerja untuk saya:
Menggunakan Tindakan untuk mengarahkan kursor dan klik WebDriver standar, saya bisa mengarahkan lalu klik.
sumber
Berdasarkan posting blog ini saya dapat memicu melayang menggunakan kode berikut dengan Selenium 2 Webdriver:
sumber
moveToElement
, gunakan yang ini! Saya kode dalam C #, jadi tidak hanya cara Jawa untuk melakukannya.Example
arguments[0]
?executeScript()
, yaituwebElement
Kode ini berfungsi dengan baik:
Setelah mouse berakhir, Anda dapat melanjutkan untuk melakukan tindakan selanjutnya yang Anda inginkan pada informasi yang diungkapkan
sumber
using OpenQA.Selenium.Interactions;
Lihat contoh ini bagaimana kita bisa menerapkan ini.
Untuk jawaban terperinci, periksa di sini - http://www.testautomationguru.com/selenium-webdriver-automating-hoverable-multilevel-dropdowns/
sumber
Saya menemukan pertanyaan ini mencari cara untuk melakukan hal yang sama untuk tes Javascript saya, menggunakan busur derajat (antarmuka javascript ke Selenium.)
Solusi saya dengan busur derajat 1.2.0 dan webdriver 2.1:
Ini juga menerima offset (saya menggunakannya untuk mengklik di atas dan di kiri elemen :)
sumber
Contoh program untuk mengarahkan mouse menggunakan Selenium java WebDriver:
sumber
Anda dapat mencoba:
Jika Anda memiliki case web memiliki banyak kategori, gunakan metode pertama. Untuk menu yang Anda inginkan, Anda hanya perlu metode kedua.
sumber