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.

  • ๐Ÿค– Konsep Tanpa Kepala: Run Selenium Pengujian tanpa GUI yang terlihat untuk menghemat CPU, memori, dan waktu eksekusi di seluruh pipeline CI.
  • โš™๏ธ Keunggulan HtmlUnitDriver: Murni Java Mesin tanpa biner eksternal, ideal untuk pemeriksaan tingkat HTTP yang cepat dan interaksi formulir yang cepat.
  • ๐Ÿš€ Penghapusan PhantomJS: Pengembangan PhantomJS dihentikan pada tahun 2018; tim harus bermigrasi ke Chrome tanpa antarmuka grafis (headless). Firefoxatau Penulis Drama.
  • โœ… Alternatif Modern: Chrome tanpa kepala dan Firefox menawarkan secara akurat JavaRendering skrip, Protokol DevTools, dan debugging yang lebih baik.
  • ๐Ÿงช Kasus Penggunaan Terbaik: Pengujian fungsional awal (smoke check), rangkaian pengujian regresi, pengujian beban, dan pekerjaan integrasi berkelanjutan pada runner Linux tanpa antarmuka grafis (headless Linux).

HTMLUnitDriver di Selenium

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.

Langkah-langkah Menggunakan HtmlUnitDriver dengan Selenium

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:

PhantomJS

Langkah-langkah untuk Menjalankan Selenium dengan PhantomJS

Langkah 1) Anda perlu Eclipse dengan Selenium diinstal.

Langkah 2) Unduh PhantomJS di sini.

Langkah-Langkah Untuk Menjalankan Selenium Dengan PhantomJS

Langkah 3) ExtracSalin folder yang diunduh ke dalam Program Files.

Langkah-Langkah Untuk Menjalankan Selenium Dengan PhantomJS

Langkah 4) Unduh Driver PhantomJS dari di siniTambahkan file JAR ke proyek Anda.

Langkah-Langkah Untuk Menjalankan Selenium Dengan PhantomJS

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.

Langkah-Langkah Untuk Menjalankan Selenium Dengan PhantomJS

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.

Pertanyaan Umum Demo Slot

Browser tanpa antarmuka grafis (headless browser) adalah browser web yang berjalan tanpa antarmuka pengguna grafis. Selenium, driver tanpa antarmuka grafis seperti HtmlUnitDriver, Chrome tanpa antarmuka grafis, dan tanpa antarmuka grafis Firefox Menjalankan pengujian di latar belakang, yang menghemat sumber daya dan mempercepat rangkaian otomatisasi.

Tidak. Pengembangan PhantomJS dihentikan pada tahun 2018 dan proyek tersebut tidak lagi dipelihara. Selenium PhantomJSDriver juga telah dihapus dari rilis terbaru. Tes baru harus menggunakan Chrome headless, headless Firefoxatau lebih tepatnya, Penulis Drama.

HtmlUnitDriver adalah murni Java Mesin ini sangat cepat dan tidak memerlukan biner browser, tetapi memiliki keterbatasan. JavaKeakuratan skrip. Headless Chrome menggunakan mesin Blink asli, sehingga menampilkan tampilan modern. JavaSitus web yang sarat skrip dapat dibuat dengan akurat, tetapi dengan mengorbankan penggunaan sumber daya yang lebih tinggi.

penggunaan Selenium dengan Chrome tanpa kepala atau tanpa kepala Firefox Untuk pengujian yang akurat di berbagai browser, atau gunakan Playwright untuk otomatisasi lintas browser secara paralel. Alat-alat ini menerima pembaruan keamanan aktif dan mendukung fitur-fitur modern seperti Protokol DevTools dan intersepsi jaringan.

Alat berbasis AI dapat secara otomatis memperbaiki locator ketika DOM berubah, memprediksi pengujian yang tidak stabil, dan menganalisis tangkapan layar untuk regresi visual. Hal ini mengurangi kegagalan pengujian headless di CI dan membantu tim QA menjaga stabilitas. Selenium saluran pipa dengan intervensi manual yang lebih sedikit.

Ya. Asisten AI modern dapat menghasilkan Selenium Skrip WebDriver di Java, Python, atau JavaSkrip dari langkah-langkah berbahasa Inggris sederhana, termasuk opsi headless untuk Chrome atau FirefoxSelalu periksa kode yang dihasilkan untuk memastikan penundaan, pemilih, dan keamanan yang benar sebelum menjalankannya di CI.

Ringkaslah postingan ini dengan: