HTMLUnitDriver di SeleniumTutorial Browser Tanpa Antarmuka Grafis (Headless Browser)
โก Ringkasan Cerdas
HtmlUnitDriver adalah implementasi headless tercepat dari Selenium WebDriver, sementara PhantomJS, yang dulunya merupakan browser headless berbasis GhostDriver yang populer, telah usang sejak 2018 dan sekarang digantikan oleh Chrome headless, headless Firefoxdan Playwright untuk alur kerja otomatisasi modern.

Browser tanpa antarmuka grafis (headless browser) adalah browser web yang tidak memiliki antarmuka pengguna grafis. Browser ini dapat berjalan di latar belakang tanpa gangguan visual.tracIni menawarkan cara yang efisien dan efektif untuk menguji aplikasi web sekaligus menghemat waktu dan sumber daya. Dalam artikel ini, kita akan membahas apa itu headless browser, kapan menggunakan pengujian headless browser, dan bagaimana cara melakukannya. Selenium HtmlUnitDriver dan PhantomJS.
Apa itu Headless Browser?
Browser tanpa antarmuka grafis (headless browser) adalah browser web. tanpa antarmuka pengguna grafisProgram ini berperilaku seperti browser biasa, tetapi tidak menampilkan jendela GUI apa pun selama eksekusi.
Beberapa contoh driver browser tanpa antarmuka grafis (headless) meliputi:
- Satuan HTML
- hantu
- PhantomJS (sudah usang)
- ZombieJS
- Watir-pengemudi web
- Chrome tanpa kepala
- Tanpa kepala Firefox
Kapan Menggunakan Pengujian Browser Tanpa Kepala?
Di era digital saat ini, aplikasi web dibangun agar kompatibel dengan berbagai perangkat dan platform. Hal ini menciptakan tantangan bagi pengembang yang harus memastikan aplikasi mereka berfungsi dengan lancar di berbagai lingkungan. Pengujian browser tanpa antarmuka grafis (headless browser testing) adalah solusi ideal karena memungkinkan pengembang untuk memvalidasi aplikasi web mereka tanpa antarmuka pengguna grafis. Dengan menggunakan pengujian browser tanpa antarmuka grafis, pengembang dapat dengan cepat menguji aplikasi web yang kompleks dengan banyak komponen dan dependensi, sehingga mempercepat pengembangan, mengurangi bug, dan meningkatkan kepuasan pengguna.
Pengujian Browser Tanpa Kepala dengan Selenium
Selenium adalah alat yang ampuh untuk pengujian browser tanpa antarmuka pengguna (headless browser testing), memungkinkan pengembang untuk menjalankan pengujian otomatis tanpa antarmuka pengguna yang terlihat. Dengan menjalankan pengujian di latar belakang, Selenium menghemat waktu dan sumber daya sekaligus membantuping Mengidentifikasi masalah yang mungkin tidak terlihat jelas dalam lingkungan pengujian berbasis UI tradisional. Ini termasuk masalah kinerja dan tata letak yang hanya terlihat dalam pengaturan headless. Namun, penting untuk menyeimbangkan pengujian headless dengan pengujian berbasis UI tradisional untuk memastikan cakupan penuh.
Contoh Populer Peramban Tanpa Kepala
Tersedia banyak browser headless, masing-masing dengan fitur dan manfaatnya sendiri, sehingga cocok untuk berbagai kasus penggunaan. Kami akan membahasnya di bawah ini.
PhantomJS
Pemberitahuan penghentian penggunaan: Pengembangan aktif PhantomJS dihentikan pada tahun 2018, dan proyek tersebut tidak lagi dipelihara. Proyek baru sebaiknya memilih headless Chrome, headless Firefox, atau Dramawan untuk otomatisasi headless modern. Contoh PhantomJS di bawah ini disertakan hanya sebagai referensi.
PhantomJS adalah browser tanpa antarmuka grafis (headless browser) yang menggunakan WebKit sebagai mesin rendering dan mendukung standar web seperti HTML5, CSS3, dan JavaSkrip. Dapat digunakan untuk pengambilan tangkapan layar dan tugas otomatisasi halaman. Ini adalah perangkat lunak sumber terbuka dan kompatibel dengan berbagai sistem operasi.
Contoh Selenium dengan PhantomJS Tanpa Kepala di Python:
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
# Set up PhantomJS options
phantomjs_options = webdriver.DesiredCapabilities.PHANTOMJS.copy()
phantomjs_options['phantomjs.page.settings.userAgent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
# Set up the PhantomJS driver
driver = webdriver.PhantomJS('/path/to/phantomjs', desired_capabilities=phantomjs_options)
# Perform actions using the driver
driver.get('https://www.example.com')
print(driver.title)
# Close the driver
driver.quit()
Chrome
Chrome adalah browser paling populer di dunia dan juga menawarkan mode headless. Browser ini dapat digunakan di berbagai platform dan mendukung bahasa pemrograman serta framework populer. Alat debugging bawaannya dan dokumentasi yang lengkap memudahkan penggunaan dan pemecahan masalah yang mungkin muncul selama pengujian.
Contoh Chrome Tanpa Kepala dengan Selenium in Python:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
# Set up Chrome options
chrome_options = Options()
chrome_options.add_argument('--headless') # Run Chrome in headless mode
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')
# Set up the Chrome driver
driver = webdriver.Chrome('/path/to/chromedriver', options=chrome_options)
# Perform actions using the driver
driver.get('https://www.example.com')
print(driver.title)
# Close the driver
driver.quit()
Firefox
Firefox adalah peramban web populer yang juga dapat digunakan sebagai peramban tanpa antarmuka grafis (headless browser) untuk pengujian. Salah satu manfaat menggunakan Firefox Keunggulan browser headless adalah ukurannya yang ringan, menjadikannya pilihan serbaguna untuk pengujian pada berbagai sistem operasi. Ditambah dengan dokumentasi yang lengkap dan dukungan komunitas, Firefox merupakan pilihan yang sangat baik untuk tim yang bereksperimen dengan otomatisasi browser tanpa antarmuka grafis (headless browser).
Contoh Tanpa Kepala Firefox dengan Selenium in Python:
from selenium import webdriver
from selenium.webdriver.firefox.options import Options
# Set up Firefox options
firefox_options = Options()
firefox_options.add_argument('--headless') # Run Firefox in headless mode
# Set up the Firefox driver
driver = webdriver.Firefox(options=firefox_options)
# Perform actions using the driver
driver.get('https://www.example.com')
print(driver.title)
# Close the driver
driver.quit()
Keuntungan Pengujian Browser Tanpa Kepala
- Eksekusi pengujian lebih cepat
- Pengujian hemat biaya
- Cakupan pengujian yang lebih baik
- Fleksibilitas dalam menjalankan tes
- Integrasi yang lebih mudah dengan pipeline CI/CD
Kekurangan Pengujian Browser Tanpa Kepala
- Tidak adanya GUI yang terlihat untuk inspeksi manual.
- Proses debugging bisa lebih sulit tanpa layar.
- Cakupan perilaku spesifik browser yang terbatas.
HtmlUnitDriver
HtmlUnitDriver adalah implementasi headless browser yang paling ringan dan tercepat untuk Selenium WebDriver. Ia berbasis pada HtmlUnit dan juga dikenal sebagai... Driver Browser Tanpa KepalaPerilakunya mirip dengan Chrome, IE, atau Firefox HtmlUnitDriver masih dipelihara dan didistribusikan melalui driver tersebut, tetapi tidak memiliki GUI, sehingga eksekusi pengujian tidak terlihat di layar. org.seleniumhq.selenium:htmlunit3-driver Artefak Maven.
Fitur-fitur HtmlUnitDriver:
- Dukungan untuk protokol HTTPS dan HTTP
- Dukungan untuk respons HTML (mengklik tautan, mengirimkan formulir, menelusuri model DOM dokumen HTML, dan banyak lagi)
- Dukungan untuk cookie
- Dukungan server proxy
- Dukungan untuk otentikasi dasar dan NTLM
- Padat JavaNaskah mendukung
- Dukungan untuk metode pengiriman GET dan POST.
- Kemampuan untuk menyesuaikan header permintaan yang dikirim ke server
- Kemampuan untuk mengontrol apakah respons yang gagal dari server harus melempar pengecualian atau dikembalikan sebagai halaman dengan tipe yang sesuai.
Langkah-langkah Menggunakan HtmlUnitDriver dengan Selenium
Langkah 1) In EclipseSalin kode berikut. Tambahkan standar Selenium Tambahkan file pustaka ke proyek. Tidak diperlukan file JAR tambahan.
package htmldriver;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;
public class htmlUnitYest {
public static void main(String[] args) {
// Creating a new instance of the HtmlUnit driver
WebDriver driver = new HtmlUnitDriver();
// Navigate to Google
driver.get("http://www.google.com");
// Locate the searchbox using its name
WebElement element = driver.findElement(By.name("q"));
// Enter a search query
element.sendKeys("Guru99");
// Submit the query. WebDriver searches for the form using the text input element automatically
// No need to locate/find the submit button
element.submit();
// This code will print the page title
System.out.println("Page title is: " + driver.getTitle());
driver.quit();
}
}
Langkah 2) Jalankan kodenya. Anda akan melihat tidak ada browser yang diluncurkan dan hasilnya ditampilkan di konsol.
Manfaat HtmlUnitDriver
- Karena tidak menggunakan GUI, pengujian berjalan di latar belakang tanpa gangguan visual.
- Dibandingkan dengan instance driver lainnya, eksekusinya lebih cepat.
- Anda juga dapat meniru berbagai versi browser saat menjalankan pengujian melalui HtmlUnitDriver.
-
Platform ini tidak bergantung pada platform lain dan mudah untuk menjalankan beberapa pengujian secara bersamaan. Ini ideal untuk pengujian beban.
Keterbatasan:
- Hal itu tidak dapat meniru sepenuhnya JavaPerilaku skrip dari setiap mesin peramban sungguhan
PhantomJS
Pengingat: PhantomJS sudah usang dan tidak lagi dipelihara. Untuk pekerjaan headless baru, gunakan Selenium dengan Chrome tanpa layar atau Firefox, atau pindah ke Penulis Naskah Drama. Bagian di bawah ini tetap ada hanya sebagai referensi lama.
PhantomJS adalah browser tanpa antarmuka grafis (headless browser) dengan JavaAPI Skrip. Secara historis, API ini digunakan untuk pengujian situs web tanpa antarmuka grafis (headless website), mengakses dan memanipulasi halaman web, dan disertakan dalam API DOM standar.
Untuk menggunakan PhantomJS dengan SeleniumAnda membutuhkan GhostDriver. Pengemudi Hantu adalah implementasi dari WebDriver Wire Protocol dalam bahasa biasa. JavaSkrip untuk PhantomJS.
Rilis PhantomJS selanjutnya terpadu Pengemudi Hantu, jadi tidak perlu menginstalnya secara terpisah.
Beginilah cara kerja sistem ini:
Langkah-langkah untuk Menjalankan Selenium dengan PhantomJS
Langkah 1) Anda perlu Eclipse dengan Selenium diinstal.
Langkah 2) Unduh PhantomJS di sini.
Langkah 3) ExtracSalin folder yang diunduh ke dalam Program Files.
Langkah 4) Unduh Driver PhantomJS dari di siniTambahkan file JAR ke proyek Anda.
Langkah 5) Tempelkan kode berikut ini di Eclipse.
package htmldriver;
import java.io.File;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.phantomjs.PhantomJSDriver;
public class phantom {
public static void main(String[] args) {
File file = new File("C:/Program Files/phantomjs-2.0.0-windows/bin/phantomjs.exe");
System.setProperty("phantomjs.binary.path", file.getAbsolutePath());
WebDriver driver = new PhantomJSDriver();
driver.get("http://www.google.com");
WebElement element = driver.findElement(By.name("q"));
element.sendKeys("Guru99");
element.submit();
System.out.println("Page title is: " + driver.getTitle());
driver.quit();
}
}
Langkah 6) Jalankan kode tersebut. Anda akan melihat output di konsol dan tidak ada browser yang akan diluncurkan.
CATATAN: Pada saat pertama kali dijalankan, tergantung pada pengaturan Anda, Anda mungkin melihat peringatan keamanan dari Windows untuk mengizinkan PhantomJS berjalan. Klik memungkinkan akses.
Banyak organisasi secara historis telah menggunakan PhantomJS untuk tugas-tugas seperti:
- Pengujian tanpa antarmuka pengguna
- Cuplikan Layar
- Otomatisasi halaman
- Pemantauan jaringan
- Menampilkan tangkapan layar dasbor untuk pengguna mereka.
- Menjalankan pengujian unit pada baris perintah
- Membuat buku panduan karyawan dari HTML ke PDF
- Menggabungkan dengan QUnit untuk rangkaian pengujian.
Untuk pekerjaan baru, gantikan kasus penggunaan PhantomJS ini dengan Chrome tanpa antarmuka grafis (headless Chrome). Firefoxatau Playwright, yang menerima pembaruan keamanan dan rendering secara berkelanjutan.






