Episode ini mengupas sejarah dan latar belakang lahirnya Selenium, evolusinya dari Selenium RC hingga Selenium 4 dengan standard W3C, keunggulannya dibandingkan Cypress, Playwright, dan Puppeteer, serta use case nyata yang menjadikannya pilihan utama web test automation.

Episode 0 sudah memastikan environment kalian siap. Sekarang saatnya memahami mengapa Selenium ada. Episode 1 ini menjawab tiga pertanyaan besar: dari mana Selenium berasal, keunggulan apa yang dia bawa, dan mengapa kalian — sebagai engineer yang membangun web test automation — memilihnya dibandingkan tool modern lainnya.
Banyak orang mulai memakai Selenium karena tutorial, padahal memahami latar belakangnya jauh lebih berharga. Dengan tahu sejarah dan posisi Selenium di ekosistem, kalian akan lebih mudah memutuskan kapan memakai Selenium, kapan memakai alternatif, dan bagaimana memposisikannya dalam arsitektur testing tim kalian.
Di akhir episode ini, kalian juga akan melihat tabel linimasa versi Selenium dan panduan kapan sebaiknya tidak memakai Selenium. Keduanya adalah bahan pertimbangan yang sering diabaikan oleh praktisi pemula.
Selenium dibuat oleh Jason Huggins di ThoughtWorks pada tahun 2004. Saat itu ia membangun tool bernama JavaScriptTestRunner untuk menguji aplikasi web secara otomatis, yang kemudian berganti nama menjadi Selenium Remote Control (RC). Keunikan Selenium RC: ia menjalankan JavaScript di dalam halaman browser untuk mensimulasikan aksi pengguna.
Pendekatan berbasis JavaScript ini punya keterbatasan: browser membatasi script dalam sandbox, sehingga banyak aksi browser asli tidak bisa disimulasikan. Masalah inilah yang melahirkan generasi berikutnya.
Pada tahun 2006, Simon Stewart mengembangkan WebDriver di ThoughtWorks dengan pendekatan berbeda: alih-alih menyuntik JavaScript, WebDriver berbicara langsung dengan browser melalui mekanisme yang lebih native. Pada tahun 2008, proyek Selenium dan WebDriver bergabung dan melahirkan Selenium 2.0 pada 2011.
Selenium 3 (2016) menandai pensiunnya Selenium RC dan fokus penuh pada WebDriver, sekaligus memulai proses standardisasi W3C. Standard ini menjadikan protokol WebDriver sebagai spesifikasi publik yang diadopsi semua browser besar.
Selenium 4 (2021) membawa lompatan besar: implementasi penuh standard W3C WebDriver tanpa modul tambahan, relative locators, Grid yang dirombak total dengan session map, dan sejak versi 4.6 ditambah Selenium Manager yang mengunduh driver secara otomatis. Per 2026, Selenium 4.x adalah rilis stabil dengan ekosistem komunitas terbesar di dunia browser automation.
Untuk memudahkan mengingat, berikut linimasa ringkas:
| Versi | Tahun | Sorotan utama |
|---|---|---|
| Selenium RC | 2004 | Berbasis JavaScript injection, oleh Jason Huggins |
| Selenium 2 | 2011 | Merger dengan WebDriver dari Simon Stewart |
| Selenium 3 | 2016 | WebDriver penuh, awal standardisasi W3C |
| Selenium 4 | 2021 | W3C penuh, relative locators, Grid baru, Selenium Manager |
pip show selenium | grep -i versionPerintah pip show selenium | grep -i version menampilkan versi yang terpasang. Pastikan versi 4.x sebelum mengikuti series ini, karena semua contoh kode memakai API Selenium 4.
Keunggulan paling khas Selenium adalah kombinasi dua dimensi yang tidak dimiliki tool lain: mendukung banyak browser (Chrome, Firefox, Edge, Safari) dan banyak bahasa pemrograman (Python, Java, C#, JavaScript, Ruby). Tim backend Java dan tim frontend JavaScript bisa memakai Selenium dengan bahasa masing-masing.
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://example.com")
print(driver.current_url)
driver.quit()Blok di atas adalah contoh driver.get(...) dari binding Python. Binding Java memakai WebDriverManager dan ChromeDriver, sedangkan binding JavaScript memakai selenium-webdriver npm — API-nya tetap mengikuti standard W3C yang sama.
Dengan lebih dari 20 tahun usia, Selenium punya dokumentasi luas, komunitas besar, integrasi dengan hampir semua framework testing (pytest, JUnit, TestNG, Mocha), dan dukungan dari standard W3C itu sendiri. Ini berarti skill yang kalian pelajari di series ini berlaku di mana pun, termasuk saat berganti perusahaan atau bahasa.
Sebelum memilih, penting melihat posisi pesaing modern:
| Tool | Bahasa | Kekuatan utama | Keterbatasan |
|---|---|---|---|
| Selenium | Banyak | Standard W3C, semua browser, Grid | Setup lebih manual, auto-wait terbatas |
| Cypress | JavaScript | Cepat, berjalan di browser yang sama | Terbatas pada ekosistem JS |
| Playwright | JavaScript, Python, Java | Auto-wait, CDP, codegen | Lebih muda, lebih sedikit dukungan pihak ketiga |
| Puppeteer | JavaScript | Kendali penuh Chrome via CDP | Fokus Chrome, bukan test runner |
Pola pikir yang sehat: Selenium untuk fleksibilitas dan standard, Playwright/Cypress untuk produktivitas dalam ekosistem JS, dan Puppeteer untuk scripting browser tingkat rendah. Kita akan membahas kapan mengombinasikannya di episode 22.
Tip
Jangan memilih tool berdasarkan popularitas semata. Tulis kriteria kebutuhan tim kalian — bahasa, browser, budget, dan jenis aplikasi — lalu cocokkan dengan kemampuan masing-masing tool.
Selenium dipakai untuk tiga kategori pekerjaan utama:
buka halaman -> isi form -> submit -> verifikasi hasil -> teardownSatu hal yang perlu diingat: Selenium bukan untuk semua jenis testing. Untuk validasi logika murni, unit test tetap pilihan terbaik. Untuk load testing, tool seperti k6 atau JMeter lebih tepat. Selenium unggul ketika yang diuji adalah perilaku nyata pengguna di browser sungguhan.
Ada situasi di mana Selenium bukan pilihan ideal. Jika aplikasi kalian adalah SPA JavaScript murni dan tim sudah sepenuhnya dalam ekosistem Node.js, Playwright atau Cypress bisa memberi auto-wait yang lebih nyaman. Jika kalian hanya butuh mengotomasi Chrome untuk scraping, Puppeteer lebih ringan. Selenium bersinar ketika kebutuhan kalian lintas browser, lintas bahasa, dan butuh standard yang stabil.
Episode 1 memberi kalian konteks: Selenium lahir di 2004 sebagai Selenium RC, bergabung dengan WebDriver menjadi Selenium 2, menstandardkan diri lewat W3C di Selenium 3 dan 4, dan kini menjadi tool browser automation paling matang dengan keunggulan cross-browser serta multi-language.
Inti yang harus dibawa pulang:
Di episode 2 selanjutnya kita akan membahas konsep dasar dan arsitektur Selenium — komponen WebDriver, browser driver, dan Selenium Grid, bagaimana Selenium mengendalikan browser lewat protokol W3C, serta test lifecycle setup, exercise, assert, dan teardown. Ini adalah fondasi arsitektural yang akan menemani seluruh series.