Blogger Jateng

Interaksi Elemen Web Tingkat Lanjut dengan Selenium

Selenium adalah kerangka kerja yang banyak digunakan untuk mengotomatisasi tindakan peramban web. Kemampuannya untuk mensimulasikan interaksi pengguna dengan elemen web membuatnya menjadi alat yang ampuh untuk pengujian dan pengikisan web. Meskipun interaksi dasar seperti mengklik tombol, memasukkan teks, dan mengambil judul halaman sangat mudah, interaksi elemen web tingkat lanjut membutuhkan pemahaman yang lebih dalam tentang fitur dan kemampuan Selenium. Artikel ini mengeksplorasi beberapa teknik tingkat lanjut ini untuk membantu Anda memaksimalkan potensi Selenium dalam proyek Anda.

1. Menangani Elemen Web Dinamis

Otomatisasi menjadi tantangan tersendiri dalam hal elemen web dinamis yang secara konsisten mengubah propertinya. ID atau kelas tidak dapat dijamin untuk tetap sama, sehingga strategi penempatan yang lebih fleksibel perlu digunakan. WebDriver dari Selenium mendukung strategi pencari lokasi yang kompleks, seperti:
  • Sumbu XPath: Menavigasi melalui hirarki DOM, misalnya
element = driver.find_element(By.XPATH, "//div[@id='parent']//child::a")

  • Pemilih CSS: Untuk memilih elemen berdasarkan nilai atribut dan hubungan, mis,

element = driver.find_element(By.CSS_SELECTOR, "div[class*='dynamic']")

Selain itu, menggunakan kelas WebDriverWait dengan ExpectedConditions memastikan bahwa Selenium menunggu sampai elemen hadir dan dapat berinteraksi.

sumber: toptal.com

2. Menangani Elemen Tersembunyi

Sebagian besar aplikasi web kontemporer menyembunyikan berbagai hal dengan CSS atau JavaScript. Mencoba berinteraksi secara langsung dengan elemen-elemen seperti itu sering kali menghasilkan kesalahan. Anda bisa:

Juga, untuk memeriksa apakah sebuah elemen ditampilkan:

element.is_displayed()

Gunakan JavaScript untuk menampilkan atau menyembunyikan elemen:

driver.execute_script("arguments[0].style.visibility='visible';", element)

Pastikan bahwa mengubah visibilitas tidak merusak cara kerja aplikasi yang seharusnya.

3. Melakukan Tindakan Seret dan Jatuhkan

Operasi seret dan lepas dapat dilakukan dengan menggunakan kelas Actions:

from selenium.webdriver import ActionChains


element = driver.find_element(By.ID, "draggable")

target = driver.find_element(By.ID, "droppable")


actions = ActionChains(driver)

actions.drag_and_drop(element, target).perform()

Untuk skenario seret dan lepas khusus, Anda dapat mensimulasikan tindakan langkah demi langkah menggunakan metode klik_dan_tahan, pindahkan_ke_elemen, dan lepaskan.

4. Mengelola Pop-up dan Peringatan

Aplikasi web sering kali memiliki notifikasi pop-up dan peringatan. Metode switch_to disediakan oleh Selenium. metode alert untuk menanganinya:

Menerima Peringatan:

alert = driver.switch_to.alert

alert.accept()

Menolak Peringatan:

alert.dismiss()

Mengambil Teks Peringatan:

print(alert.text)

Untuk jendela atau tab peramban: Metode window_handles dan switch_to. window Selenium dapat menangani beberapa konteks.  

6. Mengelola Bingkai dan IFrame

Halaman web dengan bingkai yang disematkan memerlukan pengalihan konteks sebelum berinteraksi dengan elemen di dalamnya:

Beralih ke bingkai berdasarkan indeks atau nama:

driver.switch_to.frame("frameName")

Kembali ke konteks default:

driver.switch_to.default_content()

Gunakan find_elements untuk menemukan semua frame dan mengulanginya jika pengenal frame tidak diketahui.

7. Pintasan Keyboard untuk Pengguna Tingkat Lanjut

Sebuah fitur yang kuat di Selenium adalah simulasi keyboard. Metode send_keys menyediakan tombol-tombol khusus:

from selenium.webdriver.common.keys import Keys

 

element = driver.find_element(By.ID, "text-input")

element.send_keys("Hello", Keys.TAB, "World!")

Anda juga bisa melakukan kombinasi seperti CTRL+C atau CTRL+V menggunakan kelas Actions.

Kesimpulan

Gulir tingkat lanjut, Melayang, dan Interaksi elemen web kompleks lainnya Menggunakan Selenium Memanfaatkan pencari lokasi dinamis, menangani elemen tersembunyi, pop-up, dan mengimplementasikan teknik input tingkat lanjut, semuanya berkontribusi untuk membangun skrip otomasi yang tangguh dan efektif. Seiring dengan perkembangan teknologi web, tetap update dengan fitur-fitur Selenium terbaru dan praktik terbaik akan memastikan skrip Anda tetap efektif dan dapat diandalkan.

Kembali ke>>>> Menggunakan Selenium untuk Pengujian Ujung ke Ujung