Post

Pengantar Selenium Webdriver

Pengantar Selenium Webdriver

🧭 Pengantar Selenium WebDriver


πŸ“˜ 1. Apa itu Selenium dan Apa itu Selenium WebDriver?

🧩 Apa itu Selenium?

Selenium adalah framework open-source yang digunakan untuk mengotomatisasi pengujian aplikasi web (Web Automation Testing).
Dengan Selenium, penguji dapat membuat skrip otomatis yang menjalankan browser layaknya pengguna sungguhan β€” seperti membuka halaman web, mengisi form, menekan tombol, dan memverifikasi hasil yang ditampilkan.

Selenium sendiri terdiri dari beberapa komponen utama:

  • Selenium IDE β†’ alat perekam otomatis berbasis browser
  • Selenium RC β†’ versi lama Selenium untuk remote control browser (sudah digantikan WebDriver)
  • Selenium WebDriver β†’ API utama untuk otomatisasi browser modern
  • Selenium Grid β†’ digunakan untuk menjalankan pengujian paralel di beberapa browser dan platform

πŸ”§ Apa itu Selenium WebDriver?

Selenium WebDriver adalah komponen utama Selenium yang memungkinkan penguji mengontrol browser secara langsung melalui API tanpa perantara.
Dengan WebDriver, kita dapat:

  • Membuka dan menutup browser secara otomatis
  • Mencari dan berinteraksi dengan elemen HTML (input, tombol, teks, dll)
  • Melakukan validasi hasil atau navigasi halaman
  • Mengambil tangkapan layar hasil pengujian

🌟 2. Kenapa Harus Menggunakan Selenium?

Berikut alasan kenapa Selenium menjadi alat favorit untuk pengujian berbasis web:

  1. πŸ’» Multi-Browser Support – Mendukung Chrome, Firefox, Edge, Safari, dan Opera
  2. 🧩 Multi-Language Support – Bisa digunakan dengan Python, Java, JavaScript, C#, Ruby, dan Kotlin
  3. 🧠 Mudah Dipelajari – Sintaks sederhana dan dokumentasi lengkap
  4. ⚑ Cross-Platform – Dapat dijalankan di Windows, Linux, maupun macOS
  5. πŸ” Integrasi CI/CD – Mudah diintegrasikan dengan Jenkins, GitHub Actions, atau GitLab CI
  6. πŸ’° Gratis dan Open Source – Tidak berbayar dan terus diperbarui oleh komunitas besar

βš™οΈ 3. Instalasi Selenium dengan Bahasa Pemrograman Python

🧩 Langkah-langkah instalasi Selenium dan WebDriver (contoh menggunakan Chrome):

🧩 Langkah 1 – Pastikan Python dan pip sudah terpasang

Cek versi Python dan pip di terminal atau command prompt:

1
2
python --version
pip --version

Jika belum terpasang, unduh dan install dari Python.org.

🧩 Langkah 2 – Instal Selenium Library

Jalankan perintah berikut di terminal:

1
pip install selenium

Perintah ini akan mengunduh dan memasang library Selenium ke lingkungan Python kamu.

🧩 Langkah 3 – Unduh WebDriver (contoh: ChromeDriver)

Cek versi Chrome kamu:

  • Buka Chrome β†’ chrome://settings/help

Unduh ChromeDriver yang sesuai versi di:

Ekstrak file dan letakkan di folder proyek atau path sistem (contoh: C:\chromedriver\chromedriver.exe).

🧩 Langkah 4 – Uji Instalasi

Buat file bernama test_selenium.py dan isi dengan kode berikut:

1
2
3
4
5
6
7
8
9
10
from selenium import webdriver

# Membuka browser Chrome
driver = webdriver.Chrome()

# Membuka halaman Google
driver.get("https://www.google.com")

# Menutup browser
driver.quit()

Jalankan di terminal:

1
python test_selenium.py

βœ… Hasil: Browser Chrome akan terbuka secara otomatis dan memuat halaman Google.


4. Open Browser dengan Selenium

Contoh membuka browser dan mengatur ukuran jendela:

1
2
3
4
5
6
7
from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://www.python.org")
driver.maximize_window()  # Membesarkan jendela browser
print("Judul Halaman:", driver.title)
driver.quit()

🧾 Output:

1
Judul Halaman: Welcome to Python.org

5. Cara Berinteraksi dengan Elemen-elemen pada Halaman HTML

Selenium dapat mencari elemen di halaman web menggunakan berbagai locator strategy.

Metode Locator yang Umum Digunakan

| Locator | Contoh | Deskripsi | | β€” | β€” | β€” | | By.ID | driver.find_element(By.ID, "user-name") | Berdasarkan atribut id | | By.NAME | driver.find_element(By.NAME, "password") | Berdasarkan atribut name | | By.XPATH | driver.find_element(By.XPATH, "//button[@id='login-button']") | Berdasarkan struktur XPath | | By.CSS_SELECTOR | driver.find_element(By.CSS_SELECTOR, ".btn_login") | Berdasarkan class CSS | | By.LINK_TEXT | driver.find_element(By.LINK_TEXT, "Login") | Berdasarkan teks hyperlink |

Contoh Operasi Umum

1
2
3
4
5
6
7
8
9
10
11
from selenium.webdriver.common.by import By

# Menulis teks ke input
driver.find_element(By.ID, "username").send_keys("standard_user")

# Klik tombol
driver.find_element(By.ID, "login-button").click()

# Mengambil teks dari elemen
message = driver.find_element(By.CLASS_NAME, "error-message-container").text
print("Pesan Error:", message)

6. Contoh Interaksi (Live Coding) dengan Selenium WebDriver

Berikut contoh sederhana login otomatis pada situs SauceDemo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
from selenium import webdriver
from selenium.webdriver.common.by import By
import time

# Inisialisasi WebDriver
driver = webdriver.Chrome()
driver.maximize_window()

# Buka situs
driver.get("https://www.saucedemo.com/")

# Isi form login
driver.find_element(By.ID, "user-name").send_keys("standard_user")
driver.find_element(By.ID, "password").send_keys("secret_sauce")

# Klik tombol login
driver.find_element(By.ID, "login-button").click()

# Tunggu sejenak
time.sleep(2)

# Verifikasi login berhasil
assert "inventory" in driver.current_url
print("βœ… Login Berhasil!")

# Tutup browser
driver.quit()

🧾 Output di Terminal:

1
βœ… Login Berhasil!

7. Test Case dan Test Scenario

πŸ“‹ Test Scenario

| ID | Deskripsi | Tujuan | | β€” | β€” | β€” | | TS-001 | Verifikasi login berhasil dengan kredensial valid | Memastikan pengguna dapat login | | TS-002 | Verifikasi login gagal dengan password salah | Memastikan sistem menampilkan pesan error | | TS-003 | Verifikasi penambahan produk ke keranjang | Memastikan fungsi β€œAdd to Cart” berjalan |

🧾 Test Case

Test Case 1: Login Berhasil

| Atribut | Nilai | | β€” | β€” | | ID | TC-001 | | Deskripsi | Login menggunakan username dan password valid | | Langkah Uji | 1. Buka situs https://www.saucedemo.com
2. Masukkan username: standard_user
3. Masukkan password: secret_sauce
4. Klik tombol login | | Hasil Diharapkan | Berhasil masuk ke halaman inventory.html | | Status | βœ… Passed |

Test Case 2: Login Gagal

| Atribut | Nilai | | β€” | β€” | | ID | TC-002 | | Deskripsi | Login dengan password salah | | Langkah Uji | 1. Buka situs https://www.saucedemo.com
2. Masukkan username: standard_user
3. Masukkan password: wrong_pass
4. Klik tombol login | | Hasil Diharapkan | Tampil pesan error β€œEpic sadface: Username and password do not match any user in this service” | | Status | βœ… Passed |

Test Case 3: Tambah Produk ke Keranjang

| Atribut | Nilai | | β€” | β€” | | ID | TC-003 | | Deskripsi | Menambahkan produk ke keranjang setelah login | | Langkah Uji | 1. Login ke sistem
2. Klik β€œAdd to cart” pada produk pertama
3. Klik ikon keranjang | | Hasil Diharapkan | Produk tampil di halaman keranjang | | Status | βœ… Passed |


8. Contoh Implementasi Testing Lengkap

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
from selenium import webdriver
from selenium.webdriver.common.by import By
import time

driver = webdriver.Chrome()
driver.maximize_window()
driver.get("https://www.saucedemo.com/")

# Login
driver.find_element(By.ID, "user-name").send_keys("standard_user")
driver.find_element(By.ID, "password").send_keys("secret_sauce")
driver.find_element(By.ID, "login-button").click()
time.sleep(1)

# Tambah produk ke keranjang
driver.find_element(By.CLASS_NAME, "btn_inventory").click()
driver.find_element(By.CLASS_NAME, "shopping_cart_link").click()
time.sleep(1)

# Verifikasi produk ditambahkan
assert "inventory-item" in driver.page_source
print("βœ… Produk berhasil ditambahkan ke keranjang")

# Logout
driver.find_element(By.ID, "react-burger-menu-btn").click()
time.sleep(1)
driver.find_element(By.ID, "logout_sidebar_link").click()
time.sleep(1)
print("βœ… Logout berhasil")

driver.quit()

🧾 Output di Terminal:

1
2
βœ… Produk berhasil ditambahkan ke keranjang
βœ… Logout berhasil

9. Kesimpulan

Selenium WebDriver adalah alat otomatisasi yang sangat kuat untuk melakukan pengujian antarmuka web secara efisien.
Dengan Selenium, penguji dapat:

  • Membuka browser dan menjalankan interaksi secara otomatis
  • Melakukan pengujian regresi dan fungsional dengan cepat
  • Mengurangi kesalahan manusia dalam pengujian manual
  • Mengintegrasikan pengujian dengan pipeline DevOps modern

10. Sumber Referensi

  • [Selenium Python Tutorial (with Example)BrowserStack](https://www.browserstack.com/guide/selenium-python-tutorial)
  • [WebDriverSelenium](https://www.selenium.dev/documentation/webdriver/)

This post is licensed under CC BY 4.0 by the author.