1. Menangani Elemen Web Dinamis
- 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
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