Pengaturan PC Ghost Driver: Panduan Setup & Konfigurasi - Pengaturan

Pengaturan PC Ghost Driver: Panduan Setup & Konfigurasi

Pelajari cara mengonfigurasi pengaturan PC Ghost Driver untuk Selenium dan PhantomJS. Setup langkah demi langkah, kapabilitas, dan tips optimasi.

2026-08-12
Tim Wiki Ghost Driver
Panduan Cepat
  • Pengaturan PC Ghost Driver: Konfigurasikan binding PhantomJS untuk otomatisasi Selenium WebDriver
  • Arsitektur inti: Ghost Driver berjalan sebagai implementasi JavaScript di dalam PhantomJS
  • Kapabilitas penting: Setel phantomjs.binary.path untuk menunjuk ke executable lokal Anda
  • Keunggulan headless: Tidak memerlukan server tampilan, ideal untuk pipeline CI/CD
  • Sakelar kustom: Teruskan argumen CLI melalui phantomjs.cli.args untuk kontrol SSL dan rendering

Memahami Ghost Driver dan Pengaturan PC

Ghost Driver berfungsi sebagai implementasi WebDriver yang dibangun ke dalam PhantomJS, memungkinkan otomatisasi browser headless melalui protokol W3C WebDriver. Saat mengonfigurasi pengaturan PC Ghost Driver, pada dasarnya Anda menjembatani tes klien Selenium Anda dengan mesin browser headless PhantomJS.

Sorotan Video:

  • Menjelaskan sifat ganda Ghost Driver sebagai skrip dan modul yang tertanam
  • Mencakup diagram urutan apa yang terjadi selama inisialisasi driver
  • Menunjukkan cara meneruskan kapabilitas kustom dan argumen CLI
  • Merinci perbedaan antara PhantomJS dan HTMLUnit untuk pengujian

Saat Anda menginisialisasi instance PhantomJSDriver baru di rangkaian pengujian Anda, sistem membuat layanan driver yang memunculkan proses PhantomJS terpisah. Proses ini menjalankan skrip Ghost Driver, yang kemudian mendengarkan endpoint lokal untuk perintah WebDriver. Memahami alur ini sangat penting untuk mengoptimalkan pengaturan PC lokal Anda.

Binding vs Driver

Jangan rancukan Ghost Driver dengan binding PhantomJSDriver. Ghost Driver adalah implementasi JavaScript yang berjalan di dalam PhantomJS. PhantomJSDriver merujuk pada binding klien Selenium (kelas yang Anda impor di skrip pengujian Anda) yang berkomunikasi dengan Ghost Driver melalui HTTP.

KomponenTipeBahasaPeran
Ghost DriverImplementasi WebDriverJavaScriptBerjalan di dalam PhantomJS, menangani protokol W3C
PhantomJSDriverBinding KlienJava/Python/Ruby/.NETKelas yang digunakan dalam skrip pengujian untuk meluncurkan browser
PhantomJSBrowser HeadlessC++Mesin berbasis WebKit yang mengeksekusi rendering halaman
Selenium GridArsitektur Hub/NodeBerbagaiMendistribusikan instance pengujian ke berbagai mesin

Parameter Konfigurasi PC Penting

Mengonfigurasi pengaturan PC Ghost Driver memerlukan pendefinisian Desired Capabilities (Kapabilitas yang Diinginkan) tertentu dalam pengujian Selenium Anda. Kapabilitas ini memberi tahu binding di mana letak executable PhantomJS dan cara meluncurkannya.

Pengaturan paling kritis adalah phantomjs.binary.path. Tanpa parameter ini, skrip pengujian Anda tidak akan tahu di mana menemukan executable PhantomJS di mesin Anda. Selain itu, Anda dapat meneruskan argumen baris perintah langsung ke proses PhantomJS menggunakan phantomjs.cli.args.

Lokasi Executable

Selalu verifikasi bahwa jalur yang diberikan di phantomjs.binary.path menunjuk ke file executable yang sebenarnya, bukan hanya direktorinya. Jalur yang salah adalah penyebab paling umum dari kegagalan inisialisasi.

Kunci KapabilitasTujuanContoh Nilai
phantomjs.binary.pathMenunjuk ke executable PhantomJS/usr/local/bin/phantomjs
phantomjs.ghostdriver.pathMenunjuk ke skrip Ghost Driver kustom (untuk kontributor)/path/to/ghostdriver/main.js
phantomjs.cli.argsArray argumen CLI yang diteruskan ke proses["--ignore-ssl-errors=true"]
phantomjs.page.settings.XMengesampingkan properti objek halaman (misalnya, userAgent)Mozilla/5.0 (iPhone...)

Lokasi Binary

  • Diperlukan untuk eksekusi lokal
  • Harus menunjuk langsung ke file executable
  • Gunakan jalur absolut untuk menghindari kesalahan resolusi

Argumen CLI

  • Diteruskan sebagai array string
  • Mendukung pengabaian kesalahan SSL
  • Mengaktifkan konfigurasi debugger jarak jauh

Pengaturan Halaman

  • Mengesampingkan properti browser default
  • String User-Agent kustom
  • Diterapkan ke setiap sesi baru

Panduan Setup Langkah demi Langkah

Ikuti langkah-langkah berikut untuk mengonfigurasi pengaturan PC Ghost Driver di mesin lokal Anda. Panduan ini mengasumsikan Anda sudah memiliki proyek Selenium dasar yang disiapkan dalam bahasa pemrograman pilihan Anda.

1

Unduh PhantomJS

Unduh build PhantomJS yang sesuai untuk sistem operasi Anda dari situs web resmi. Unzip paketnya dan catat lokasi file executable. Atau, Anda dapat membangun PhantomJS dari sumber, meskipun proses ini bisa memakan waktu lebih dari satu jam di mesin cepat karena mengompilasi seluruh mesin WebKit.

2

Tambahkan Binding Selenium

Tambahkan binding Selenium WebDriver ke proyek Anda. Di Java, sertakan dependensi selenium-java dan selenium-server melalui Maven atau Gradle. Untuk Python, cukup instal paket selenium. Kelas PhantomJSDriver sudah dibundel di dalam pustaka Selenium standar.

3

Konfigurasikan Desired Capabilities

Buat objek DesiredCapabilities dan setel kapabilitas phantomjs.binary.path ke jalur absolut dari executable PhantomJS Anda. Tambahkan argumen CLI yang diperlukan ke array kapabilitas phantomjs.cli.args.

4

Inisialisasi Driver

Teruskan objek kapabilitas yang dikonfigurasi ke instance PhantomJSDriver baru. Layanan driver akan secara otomatis memunculkan proses PhantomJS, menjalankan Ghost Driver, dan membuat sesi WebDriver.

5

Jalankan Pengujian Secara Headless

Jalankan rangkaian pengujian Anda. PhantomJS akan berjalan sepenuhnya secara headless tanpa membuka jendela browser, membuatnya ideal untuk lingkungan continuous integration dan eksekusi baris perintah.

Verifikasi Setup

Setelah inisialisasi, skrip pengujian Anda akan melakukan polling ke endpoint /status di port lokal. Setelah menerima respons HTTP 200 OK, sesi baru akan dibuat secara otomatis. Anda kemudian dapat menggunakan perintah WebDriver standar seperti driver.get(url) untuk menavigasi.

Pengaturan SSL, Keamanan, dan Grid

Saat menjalankan pengujian otomatis terhadap lingkungan internal atau staging, Anda sering menemukan sertifikat SSL yang ditandatangani sendiri (self-signed). Pengaturan PC Ghost Driver menyediakan kapabilitas spesifik untuk menangani skenario ini dengan baik.

Untuk mengabaikan kesalahan sertifikat SSL, teruskan argumen --ignore-ssl-errors=true melalui kapabilitas phantomjs.cli.args. Anda juga dapat meneruskan --web-security=false untuk menonaktifkan pemeriksaan kebijakan same-origin selama pengujian.

Implikasi Keamanan

Hanya nonaktifkan verifikasi SSL dan keamanan web di lingkungan pengujian. Jangan pernah menggunakan pengaturan ini di produksi atau saat menangani data pengguna yang sensitif.

Argumen CLIEfekKasus Penggunaan
--ignore-ssl-errors=trueMengabaikan semua kesalahan validasi sertifikatServer staging internal dengan sertifikat self-signed
--web-security=falseMenonaktifkan kebijakan keamanan cross-originMenguji interaksi iframe dan perilaku CORS
--remote-debugger-port=9000Mengaktifkan debugging jarak jauh melalui Web InspectorMen-debug kode JavaScript Ghost Driver
--webdriver=8080Menetapkan port kustom untuk pendengar WebDriverMenjalankan beberapa instance secara bersamaan

Untuk integrasi Selenium Grid, Anda dapat mendaftarkan instance PhantomJS Anda ke hub dengan meneruskan parameter --webdriver-selenium-grid-hub bersama URL hub. Ini memungkinkan grid untuk mendistribusikan instance PhantomJS ke beberapa mesin pengujian.

Debugging Jarak Jauh

Untuk men-debug internal Ghost Driver, mulai PhantomJS dengan --remote-debugger-port=9000 dan --remote-debugger-autorun=yes. Buka Web Inspector di Chrome atau Safari dan sambungkan ke instance PhantomJS untuk menelusuri kode JavaScript langkah demi langkah.

Kustomisasi Lanjutan dan Batasan

Pengaturan PC Ghost Driver mendukung kustomisasi tingkat halaman lanjutan melalui awalan kapabilitas phantomjs.page.settings. Ini memungkinkan Anda untuk mengesampingkan properti pada setiap objek halaman yang dibuat selama sesi.

Kasus penggunaan umum adalah mengesampingkan string User-Agent. Beberapa situs web memfilter lalu lintas berdasarkan User-Agent untuk memblokir screen scraping. Dengan menetapkan User-Agent kustom, Anda dapat mensimulasikan perangkat yang berbeda seperti browser iOS atau Android.

Pengaturan HalamanDeskripsiNilai Umum
userAgentMengesampingkan string User-Agent browserMozilla/5.0 (iPhone; CPU iPhone OS 10_0...)
javascriptEnabledMengaktifkan atau menonaktifkan eksekusi JavaScripttrue
loadImagesMengontrol apakah gambar dimuatfalse (untuk scraping yang lebih cepat)
resourceTimeoutMenetapkan waktu muat sumber daya maksimum dalam ms10000
Keterbatasan Saat Ini

Pada versi 1.0.2, beberapa perintah WebDriver belum diimplementasikan di Ghost Driver. Fitur yang hilang termasuk Touch API, geolocation API, emulasi seluler, manipulasi penyimpanan lokal, dan penanganan alert/confirm/prompt. Periksa spreadsheet implementasi resmi untuk status saat ini.

Daftar Periksa Optimasi:

  • Setel phantomjs.binary.path ke lokasi executable absolut
  • Nonaktifkan pemuatan gambar untuk performa scraping yang lebih cepat
  • Teruskan --ignore-ssl-errors=true untuk pengujian internal
  • Ganti User-Agent saat menguji tata letak responsif
  • Daftar dengan Selenium Grid untuk pengujian terdistribusi

Pertanyaan yang Sering Diajukan

Q: Apa perbedaan antara Ghost Driver dan PhantomJS?

PhantomJS adalah browser WebKit headless yang ditulis dalam C++. Ghost Driver adalah implementasi JavaScript dari protokol WebDriver yang berjalan di dalam PhantomJS. Saat Anda mengonfigurasi pengaturan PC Ghost Driver, Anda memberi tahu Selenium cara berkomunikasi dengan PhantomJS melalui antarmuka Ghost Driver.

Q: Bagaimana cara meneruskan argumen baris perintah kustom ke PhantomJS?

Gunakan kapabilitas yang diinginkan `phantomjs.cli.args`. Teruskan array string di mana setiap string mewakili argumen CLI. Misalnya, untuk mengabaikan kesalahan SSL, setel kapabilitas ke array yang berisi `--ignore-ssl-errors=true`.

Q: Bisakah saya menggunakan Ghost Driver dengan Selenium Grid?

Ya. Mulai PhantomJS dengan parameter `--webdriver-selenium-grid-hub` diikuti dengan URL hub Anda. Instance PhantomJS akan secara otomatis mendaftarkan dirinya ke grid dan tersedia untuk eksekusi pengujian terdistribusi.

Q: Mengapa pengujian saya gagal dengan kesalahan 'not implemented'?

Ghost Driver belum mengimplementasikan setiap perintah WebDriver. Touch API, geolokasi, penyimpanan lokal, dan penanganan alert adalah beberapa di antaranya fitur yang belum didukung saat ini. Periksa spreadsheet status implementasi resmi untuk memverifikasi apakah perintah spesifik Anda tersedia.