Siapkan Python
Gunakan Gunakan Python 3.10+ dan pastikan perintah Python serta pip dapat dipanggil dari terminal.
Automation Test Builder
Rancang skenario pengujian secara visual, gunakan locator yang stabil, lalu hasilkan script Python yang siap diperiksa dan dijalankan.
Panduan langkah demi langkah
Mulai dari memasang Python, membuat virtual environment, menginstal Selenium, menggunakan file hasil generator, sampai menjalankan automation di Windows, macOS, dan berbagai distribusi Linux.
Selenium WebDriver mengontrol browser secara native seperti pengguna nyata. Untuk Python, alur kerjanya adalah: pasang Python, buat environment proyek, pasang paket Selenium, simpan script .py, lalu jalankan dengan interpreter Python.
Gunakan Gunakan Python 3.10+ dan pastikan perintah Python serta pip dapat dipanggil dari terminal.
Paket Python Selenium dipasang di virtual environment agar dependency proyek tetap terisolasi.
Gunakan Selenium Manager secara default, atau pilih webdriver-manager/chromedriver-autoinstaller bila perlu kontrol eksplisit.
Selenium modern menyertakan Selenium Manager. Saat script membuat webdriver.Chrome(), webdriver.Firefox(), atau webdriver.Edge() tanpa path driver, Selenium akan mencoba mengelola driver yang sesuai secara otomatis.
Per 3 Agustus 2026, release stabil Selenium Python adalah 4.46.0 dan package terbaru memerlukan Python 3.10+. Gunakan python -m pip install -U selenium agar pip memilih release terbaru yang kompatibel.
Sebelum instalasi, pastikan perangkat memenuhi kebutuhan berikut.
Python 3.10+ untuk Selenium terbaru, pip, terminal/command prompt, dan satu browser yang didukung.
Virtual environment, editor kode seperti VS Code, dan koneksi internet saat run pertama.
| Komponen | Fungsi | Pengecekan |
|---|---|---|
| Python 3.10+ | Menjalankan release Selenium Python terbaru. Python lama mungkin hanya memperoleh release Selenium lama yang masih kompatibel. | python --version atau python3 --version |
| pip | Memasang package Selenium. | python -m pip --version |
| Browser | Target automation: Chrome, Firefox, atau Edge. | Buka browser dan cek menu About. |
| Internet | Download package dan driver pada eksekusi pertama. | Pastikan akses ke PyPI dan vendor browser tidak diblokir. |
Pilih satu metode berikut. Selenium Manager adalah pilihan utama untuk proyek baru.
Built-in pada Selenium modern. Mendukung Chrome, Firefox, dan Edge tanpa package driver tambahan.
python -m pip install --upgrade seleniumPackage pihak ketiga untuk download, cache, dan resolusi driver secara eksplisit dari Python.
python -m pip install --upgrade selenium webdriver-managerPackage pihak ketiga khusus Chrome/Chromium. Memeriksa versi Chrome lalu menambahkan ChromeDriver ke PATH.
python -m pip install --upgrade selenium chromedriver-autoinstallerpip install chromedriver secara sembarangChromeDriver adalah binary yang harus cocok dengan browser dan arsitektur OS. Gunakan Selenium Manager, webdriver-manager, chromedriver-autoinstaller, atau driver resmi manual. Package PyPI bernama mirip belum tentu resmi atau kompatibel.
Pilih OS. Semua metode di bawah menggunakan virtual environment bernama .venv.
Unduh installer resmi Python untuk Windows. Saat installer klasik digunakan, aktifkan opsi Add Python to PATH. Pada Windows terbaru, Python Install Manager resmi juga dapat digunakan.
Sumber resmi: Python for Windows.
py --version
py -m pip --versionJika perintah py tidak tersedia, coba python --version.
mkdir selenium-project
cd selenium-projectpy -m venv .venv
.\.venv\Scripts\Activate.ps1Jalankan hanya untuk sesi PowerShell saat ini:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.\.venv\Scripts\Activate.ps1py -m venv .venv
.venv\Scripts\activate.batpython -m pip install --upgrade pip setuptools wheel
python -m pip install --upgrade selenium
python -c "import selenium; print('Selenium:', selenium.__version__)"Pilih salah satu sesuai mode yang dipilih pada Generator:
python -m pip install --upgrade webdriver-managerpython -m pip install --upgrade chromedriver-autoinstallerGunakan installer resmi dari Python.org atau package manager yang dikelola sendiri. Jangan bergantung pada Python sistem lama.
Sumber resmi: Python for macOS.
brew update
brew install pythonHomebrew adalah opsi pihak ketiga. Gunakan hanya bila Homebrew memang menjadi package manager standar Anda.
python3 --version
python3 -m pip --versionmkdir -p selenium-project
cd selenium-project
python3 -m venv .venv
source .venv/bin/activatepython -m pip install --upgrade pip setuptools wheel
python -m pip install --upgrade selenium
python -c "import selenium; print('Selenium:', selenium.__version__)"Install Chrome, Firefox, atau Edge untuk macOS. Pada eksekusi pertama, macOS dapat meminta izin atau melakukan pemeriksaan keamanan terhadap komponen yang baru diunduh.
sudo apt update
sudo apt install -y python3 python3-pip python3-venvpython3 --version
python3 -m pip --versionmkdir -p ~/selenium-project
cd ~/selenium-project
python3 -m venv .venv
source .venv/bin/activatepython -m pip install --upgrade pip setuptools wheel
python -m pip install --upgrade selenium
python -c "import selenium; print('Selenium:', selenium.__version__)"Install Chrome, Chromium, Firefox, atau Edge dari repositori distribusi atau repositori resmi vendor. Nama paket dapat berbeda antar versi distribusi.
sudo apt install -y firefoxPada server minimal tanpa desktop, gunakan mode headless. Browser tetap harus terpasang walaupun jendelanya tidak ditampilkan.
sudo dnf install -y python3 python3-pipPada beberapa release, modul venv sudah termasuk dalam paket Python.
mkdir -p ~/selenium-project
cd ~/selenium-project
python3 -m venv .venv
source .venv/bin/activatepython -m pip install --upgrade pip setuptools wheel
python -m pip install --upgrade selenium
python -c "import selenium; print('Selenium:', selenium.__version__)"Firefox biasanya tersedia dari repositori distribusi. Chrome atau Edge umumnya memakai repositori vendor.
sudo dnf install -y firefoxsudo pacman -Syu
sudo pacman -S python python-pip firefoxmkdir -p ~/selenium-project
cd ~/selenium-project
python -m venv .venv
source .venv/bin/activatepython -m pip install --upgrade pip setuptools wheel
python -m pip install --upgrade selenium
python -c "import selenium; print('Selenium:', selenium.__version__)"sudo zypper refresh
sudo zypper install python3 python3-pip python3-virtualenv MozillaFirefoxNama paket dapat berubah berdasarkan versi Leap atau Tumbleweed.
mkdir -p ~/selenium-project
cd ~/selenium-project
python3 -m venv .venv
source .venv/bin/activatepython -m pip install --upgrade pip setuptools wheel
python -m pip install --upgrade selenium
python -c "import selenium; print('Selenium:', selenium.__version__)"Sebelum menjalankan hasil generator, buat test sederhana untuk memastikan Python, Selenium, browser, dan Selenium Manager berfungsi.
Prompt terminal biasanya menampilkan awalan (.venv). Jika belum aktif, jalankan command activation sesuai OS pada bagian sebelumnya.
test_selenium.pyfrom selenium import webdriver
driver = webdriver.Chrome()
try:
driver.get("https://example.com")
print("Title:", driver.title)
assert "Example Domain" in driver.title
print("Selenium berjalan dengan baik.")
finally:
driver.quit()Untuk Firefox ganti dengan webdriver.Firefox(). Untuk Edge ganti dengan webdriver.Edge().
python test_selenium.pyBrowser akan terbuka, membuka Example Domain, mencetak title, lalu menutup.
from selenium import webdriver
driver = webdriver.Chrome() # Driver dikelola Selenium Managerfrom selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(
service=Service(ChromeDriverManager().install())
)import chromedriver_autoinstaller
from selenium import webdriver
chromedriver_autoinstaller.install()
driver = webdriver.Chrome()Terminal menampilkan Example Domain dan Selenium berjalan dengan baik. tanpa traceback.
Setelah menekan tombol generate pada Selenium Code Generator, ikuti alur berikut.
Pastikan Target URL, browser, timeout, dan setiap locator sudah benar.
Kosongkan Driver Path untuk memakai Selenium Manager. Isi driver path hanya pada lingkungan offline atau pengelolaan driver manual.
Klik Buat Kode Python, lalu pilih Unduh Python. File default biasanya bernama selenium_{UNIXTIME}.py; token tersebut otomatis menjadi timestamp saat diunduh.
Hasil akhirnya disarankan seperti berikut:
selenium-project/
├── .venv/
├── selenium_1785763401.py
└── requirements.txtTARGET_URL = "https://example.com/login"
DRIVER_PATH = ""
PAGE_LOAD_TIMEOUT = 30
WAIT_TIMEOUT = 10Pastikan TARGET_URL benar. Saat DRIVER_PATH = "", script menggunakan driver otomatis.
Jangan menyimpan password asli langsung di source code untuk proyek nyata. Gunakan action Input dari Environment Variable pada generator atau akses os.environ secara manual.
import os
USERNAME = os.environ["TEST_USERNAME"]
PASSWORD = os.environ["TEST_PASSWORD"]$env:TEST_USERNAME = "user@example.com"
$env:TEST_PASSWORD = "your-password"export TEST_USERNAME="user@example.com"
export TEST_PASSWORD="your-password"python -m py_compile selenium_1785763401.pyJika tidak ada output, syntax Python valid. File cache dapat dibuat di folder __pycache__.
Jalankan dari terminal yang berada di folder proyek dan pastikan virtual environment aktif.
cd path\to\selenium-project
.\.venv\Scripts\Activate.ps1
python selenium_1785763401.pycd ~/selenium-project
source .venv/bin/activate
python selenium_1785763401.pyBrowser mengikuti skenario dari atas ke bawah. Jika assertion gagal atau element tidak ditemukan, terminal menampilkan traceback dan screenshot error dapat tersimpan sebagai selenium-error.png. Jika seluruh langkah berhasil, generator dapat menyimpan selenium-success.png.
Exit code 0 berarti script selesai tanpa exception.
python selenium_1785763401.py
$LASTEXITCODEpython selenium_1785763401.py
echo $?deactivateAutomation harus mematuhi izin akses, kebijakan aplikasi, rate limit, privasi pengguna, dan aturan keamanan organisasi.
Headless menjalankan browser tanpa jendela visual. Cocok untuk server, CI/CD, cron, dan container.
options.add_argument("--headless=new")
options.add_argument("--window-size=1920,1080")options.add_argument("-headless")
options.add_argument("--width=1920")
options.add_argument("--height=1080")Mode headless tidak berarti browser boleh tidak terpasang. Browser executable tetap dibutuhkan kecuali Anda menggunakan Selenium Grid atau remote browser service.
Gunakan path absolut untuk Python environment, script, dan log:
0 7 * * * /home/user/selenium-project/.venv/bin/python /home/user/selenium-project/selenium_1785763401.py >> /home/user/selenium-project/selenium.log 2>&1Untuk satu script sederhana, struktur minimal cukup. Untuk proyek bertumbuh, pisahkan test, page object, data, dan artefak.
selenium-project/
├── .venv/
├── tests/
│ ├── test_login.py
│ └── test_checkout.py
├── pages/
│ ├── login_page.py
│ └── dashboard_page.py
├── screenshots/
├── reports/
├── requirements.txt
├── .gitignore
└── README.mdpython -m pip freeze > requirements.txtpython -m pip install -r requirements.txt.gitignore.venv/
__pycache__/
*.pyc
.env
selenium-success.png
selenium-error.png
selenium-error.html
screenshots/
reports/Output v3.4 menggunakan locator berbasis atribut stabil, explicit wait multiline, Selenium Manager dengan fallback DRIVER_PATH, screenshot saat sukses, screenshot dan page source saat exception, serta driver.quit() pada blok finally.
Berikut masalah yang paling sering terjadi saat instalasi dan menjalankan Selenium.
NotOpenSSLWarning — Python macOS memakai LibreSSLPeringatan ini berasal dari Python yang dikompilasi dengan LibreSSL lama, bukan dari locator Selenium. Gunakan Python dari installer resmi atau Homebrew, hapus virtual environment lama, lalu buat ulang.
brew install python
cd /path/to/project
rm -rf .venv
$(brew --prefix)/bin/python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip selenium
python -c "import ssl; print(ssl.OPENSSL_VERSION)"TimeoutException pada ID Angular seperti mat-input-2ID dengan angka pada Angular Material sering dibuat dinamis. Gunakan locator yang lebih stabil seperti formcontrolname, name, data-testid, atau label.
locator = (By.CSS_SELECTOR, 'input[formcontrolname="username"]')
element = WebDriverWait(driver, 30).until(
EC.element_to_be_clickable(locator)
)
element.clear()
element.send_keys("user@example.com")Jika tetap gagal, periksa iframe, URL aktif, overlay, dan simpan screenshot serta page source saat timeout.
python atau pip tidak ditemukanWindows: coba py. macOS/Linux: coba python3. Pastikan Python terpasang dan PATH benar. Lebih aman menjalankan pip sebagai modul: python -m pip.
ModuleNotFoundError: No module named 'selenium'Virtual environment yang digunakan saat run berbeda dari tempat Selenium di-install.
python -c "import sys; print(sys.executable)"
python -m pip show seleniumUnable to obtain driver atau driver gagal diunduhPeriksa internet, proxy, firewall, sertifikat perusahaan, dan akses ke sumber download vendor. Pastikan browser benar-benar terpasang. Pada jaringan offline, unduh driver secara manual, cocokkan dengan versi browser, lalu isi DRIVER_PATH.
SessionNotCreatedExceptionUmumnya terjadi karena browser dan driver tidak kompatibel, binary browser tidak ditemukan, atau versi browser terlalu lama. Update browser dan Selenium, lalu coba kembali tanpa driver path manual.
python -m pip install --upgrade seleniumNoSuchElementExceptionLocator salah, element berada di iframe, halaman belum selesai memuat, atau DOM berubah. Gunakan explicit wait dan verifikasi locator dari browser DevTools.
TimeoutExceptionKondisi wait tidak terpenuhi dalam waktu yang ditentukan. Naikkan timeout secara wajar, periksa jaringan, locator, overlay, iframe, atau apakah element memang muncul.
Script menggunakan driver.quit() pada blok finally. Ini perilaku yang benar untuk automation. Untuk debugging, tambahkan breakpoint, log, atau nonaktifkan opsi tutup browser dari generator sementara.
Aktifkan headless, pastikan browser dan library OS tersedia, gunakan ukuran window eksplisit, cek permission folder screenshot/download, dan jangan mengandalkan path relatif dari working directory yang berbeda.
Masuk ke iframe sebelum mencari element di dalamnya, lalu kembali ke default content.
frame = driver.find_element(By.CSS_SELECTOR, "iframe")
driver.switch_to.frame(frame)
# Cari element di dalam iframe
driver.switch_to.default_content()Centang item berikut. Status tersimpan di browser lokal.
Selesaikan checklist sebelum menjalankan test.
Dokumentasi ini mengikuti pola instalasi dan penggunaan dari sumber resmi berikut.
Command package manager Linux dapat berbeda menurut versi distribusi dan kebijakan repositori. Gunakan dokumentasi resmi distribusi jika nama paket tidak tersedia.