Python: Mengatasi Javascript Alert dengan Selenium & Chromedriver


Handle JavaScript Alert dengan Selenium & Chromedriver

Automate di era digital sekarang ini sangat berperan penting, terutama dalam mengerjakan suatu tugas (task) yang bersifat rutin dan juga banyak. Bayangkan, misalnya anda diberi tugas untuk mendownload laporan pada web tertentu dalam jumlah yang banyak dalam waktu yang singkat setiap hari, apa tidak bosan dan capek? :D

Kalo saya jelas capek, terlebih hal tersebut menguras waktu. Oleh karena itu automate (otomatisasi) merupakan solusi yang tepat. Dari mana memulainya, dan bahasa pemrograman apa yang harus dipelajari?

Silahkan baca artikel dari Freecodecamp berikut ini: Here are the best programming languages to learn in 2018.
Dari daftar bahasa pemrograman tersebut, saya memilih Python.

Baik, langsung saja ke inti dari artikel ini yaitu: handle alert dengan selenium python. Bagi anda yang belum familiar dengan selenium silahkan baca artikel berikut ini:
Automate Web Browser dengan Selenium Webdriver pada Windows 7
Automate Web Browser dengan Selenium Webdriver pada Linux

Javascript Alert terkadang menjadi penghalang jika berurusan dengan otomatisasi web browser.
Contohnya default alert berikut ini:

Pyhton selenium handle Javascript Alert

Padahal tinggal memberi atau memerintahkan webdriver untuk melakukan Enter: send_keys(Enter), hal tersebut dapat diatasi. Tapi sepengalaman saya nihil.

Oiya disini saya menggunakan Python versi bawaan distro yaitu Python 2.7 dan chromedriver.
Berikut contoh python script selenium untuk menghandle javascript alert.
from selenium import webdriver
from selenium.webdriver.common.alert import Alert
import os, time

browser = webdriver.Chrome()
browser.get("https://halaman-login.com")

time.sleep(1)
browser.find_element_by_id("username").send_keys("username")
browser.find_element_by_id("password").send_keys("secretpassword")
browser.find_element_by_id("button_login").click()

time.sleep(2)
# handle javasript alert:
Alert(browser).accept()

Ternyata sangatlah mudah, hanya dengan baris kode:
Alert(browser).accept()

Artikel ini merupakan dokumentasi saya pribadi, tujuannya agar tidak lupa dan mudah ditemukan di kemudian hari jika mengalami hal serupa :D.
Happy automate testing!

No comments:

Post a Comment