HTMLUnitDriver'da Selenium: Başsız Tarayıcı Eğitimi
⚡ Akıllı Özet
HtmlUnitDriver, başsız (headless) mimarinin en hızlı uygulamasıdır. Selenium WebDriver, bir zamanlar popüler bir GhostDriver tabanlı başsız tarayıcı olan PhantomJS'ye kıyasla daha az destek görüyor; PhantomJS ise 2018'den beri kullanımdan kaldırıldı ve yerini başsız Chrome aldı. Firefoxve modern otomasyon iş akışları için Playwright.

Başsız tarayıcı, grafiksel kullanıcı arayüzü olmayan bir web tarayıcısıdır. Görsel bir uyarı vermeden arka planda çalışabilir.tracBu yöntem, zaman ve kaynak tasarrufu sağlarken web uygulamalarını test etmenin verimli ve etkili bir yolunu sunar. Bu makalede, başsız tarayıcının ne olduğunu, başsız tarayıcı testinin ne zaman kullanılacağını ve nasıl gerçekleştirileceğini inceleyeceğiz. Selenium HtmlUnitDriver ve PhantomJS.
Başsız Tarayıcı Nedir?
Başsız tarayıcı, bir web tarayıcısıdır. grafiksel kullanıcı arayüzü olmadanBu program tıpkı normal bir tarayıcı gibi davranır, ancak çalıştırılması sırasında herhangi bir grafik kullanıcı arayüzü penceresi görüntülemez.
Başsız tarayıcı sürücülerine bazı örnekler şunlardır:
- HtmlBirimi
- Hayalet
- PhantomJS (kullanımdan kaldırıldı)
- ZombiJS
- Watir-web sürücüsü
- Başsız Krom
- Kafasız Firefox
Başsız Tarayıcı Testi Ne Zaman Kullanılır?
Günümüzün dijital çağında, web uygulamaları çok çeşitli cihaz ve platformlarla uyumlu olacak şekilde tasarlanmaktadır. Bu durum, uygulamalarının farklı ortamlarda sorunsuz çalışmasını sağlamak zorunda olan geliştiriciler için bir zorluk yaratmaktadır. Grafiksel kullanıcı arayüzü olmadan web uygulamalarını doğrulamalarına olanak tanıyan başsız tarayıcı testi ideal bir çözümdür. Başsız tarayıcı testi kullanarak, geliştiriciler birçok bileşen ve bağımlılığa sahip karmaşık web uygulamalarını hızlı bir şekilde test edebilir, böylece daha hızlı geliştirme, daha az hata ve daha mutlu kullanıcılar elde edebilirler.
Başsız Tarayıcı Testi Selenium
Selenium Başsız tarayıcı testleri için güçlü bir araçtır ve geliştiricilerin görünür bir kullanıcı arayüzü olmadan otomatik testler çalıştırmasına olanak tanır. Testleri arka planda çalıştırarak, Selenium Zaman ve kaynak tasarrufu sağlarken aynı zamanda yardımcı olur.ping Geleneksel kullanıcı arayüzü tabanlı test ortamında belirgin olmayabilecek sorunları tespit edin. Bu, yalnızca başsız (headless) ortamda ortaya çıkan performans ve düzen sorunlarını içerir. Bununla birlikte, tam kapsam sağlamak için başsız testleri geleneksel kullanıcı arayüzü tabanlı testlerle dengelemek önemlidir.
Başsız Tarayıcıların Popüler Örnekleri
Birçok başsız tarayıcı mevcuttur ve her birinin kendine özgü özellikleri ve avantajları vardır, bu da onları farklı kullanım durumlarına uygun hale getirir. Bunları aşağıda ele alıyoruz.
PhantomJS
Kullanımdan kaldırma bildirimi: PhantomJS'nin aktif geliştirme süreci 2018'de durduruldu ve proje artık sürdürülmüyor. Yeni projeler için Chrome'un başsız (headless) versiyonunun tercih edilmesi önerilir. Firefoxya da Oyun yazarı Modern başsız otomasyon için. Aşağıdaki PhantomJS örneği yalnızca referans amacıyla eklenmiştir.
PhantomJS, WebKit'i işleme motoru olarak kullanan ve HTML5, CSS3 gibi web standartlarını destekleyen, başsız bir tarayıcıdır. JavaBu betik, ekran görüntüsü alma ve sayfa otomasyonu görevleri için kullanılabilir. Açık kaynaklıdır ve birden fazla işletim sistemiyle uyumludur.
Örnek Selenium Headless PhantomJS ile 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()
krom
Chrome, dünyanın en popüler tarayıcısıdır ve başsız mod (headless mode) özelliği de sunmaktadır. Birçok platformda kullanılabilir ve popüler programlama dilleri ve çerçevelerini destekler. Dahili hata ayıklama araçları ve kapsamlı dokümantasyonu, kullanımını kolaylaştırır ve test sırasında ortaya çıkabilecek sorunların giderilmesini sağlar.
Başsız Chrome Örneği 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 Popüler bir web tarayıcısıdır ve test amaçlı olarak başsız tarayıcı olarak da kullanılabilir. Kullanmanın bir avantajı da budur. Firefox Başsız bir tarayıcı olmasının avantajlarından biri, hafif yapısıdır; bu da onu farklı işletim sistemlerinde test yapmak için çok yönlü bir seçenek haline getirir. Kapsamlı dokümantasyonu ve topluluk desteğiyle birleştiğinde, Firefox Tarayıcı otomasyonu konusunda denemeler yapan ekipler için mükemmel bir seçimdir.
Başsız Örneği Firefox 'da 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()
Başsız Tarayıcı Testinin Avantajları
- Daha hızlı test yürütme
- Uygun maliyetli testler
- Daha iyi test kapsamı
- Testleri yürütmede esneklik
- CI/CD işlem hatlarıyla daha kolay entegrasyon
Başsız Tarayıcı Testinin Dezavantajları
- Manuel inceleme için görünür bir grafik kullanıcı arayüzünün (GUI) eksikliği
- Ekran olmadan hata ayıklama daha zor olabilir.
- Sınırlı tarayıcıya özgü davranış kapsamı
HtmlUnitSürücü
HtmlUnitDriver, başsız tarayıcı için en hafif ve en hızlı uygulamadır. Selenium WebDriver. HtmlUnit tabanlıdır ve aynı zamanda şu şekilde de bilinir: Başsız Tarayıcı SürücüsüChrome, IE veya benzeri tarayıcılar gibi davranır. Firefox Sürücü mevcut, ancak grafiksel arayüzü (GUI) yok, bu nedenle test yürütmesi ekranda görünmüyor. HtmlUnitDriver hala geliştirilmekte ve dağıtılmaktadır. org.seleniumhq.selenium:htmlunit3-driver Maven yapıtı.
HtmlUnitDriver'ın Özellikleri:
- HTTPS ve HTTP protokolleri desteği
- HTML yanıtlarına destek (bağlantılara tıklama, form gönderme, HTML belgesinin DOM modelinde gezinme ve daha fazlası)
- Çerezler için destek
- Proxy sunucu desteği
- Temel ve NTLM kimlik doğrulaması desteği
- İçi Dolu JavaSenaryo destek
- GET ve POST gönderim yöntemlerine destek
- Sunucuya gönderilen istek başlıklarını özelleştirme yeteneği
- Sunucudan gelen başarısız yanıtların istisna fırlatıp fırlatmayacağını veya uygun türde sayfalar olarak döndürülüp döndürülmeyeceğini kontrol etme yeteneği.
HtmlUnitDriver'ı Kullanma Adımları Selenium
) 1 Adım In EclipseAşağıdaki kodu kopyalayın. Standart kodu ekleyin. Selenium Projeye kütüphane dosyalarını ekleyin. Ek JAR dosyalarına gerek yoktur.
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();
}
}
) 2 Adım Kodu çalıştırın. Gördüğünüz gibi, hiçbir tarayıcı başlatılmıyor ve sonuçlar konsolda gösteriliyor.
HtmlUnitDriver'ın Faydaları
- Grafik kullanıcı arayüzü (GUI) kullanmadığı için testler arka planda, görsel bir kesinti olmadan çalışır.
- Diğer sürücü örneklerine kıyasla, yürütme daha hızlıdır.
- HtmlUnitDriver aracılığıyla testler çalıştırırken farklı tarayıcı sürümlerini de taklit edebilirsiniz.
-
Platformdan bağımsızdır ve aynı anda birden fazla test çalıştırmak kolaydır. İdealdir çünkü... yük testi.
Sınırlamalar:
- Tam olarak taklit edemez JavaHer gerçek tarayıcı motorunun komut dosyası davranışı
PhantomJS
Hatırlatma: PhantomJS'nin desteği sona ermiştir ve artık sürdürülmemektedir. Yeni başsız (headless) çalışmalar için lütfen şunu kullanın: Selenium başsız Chrome ile veya FirefoxYa da Oyun Yazarı bölümüne geçin. Aşağıdaki bölüm yalnızca eski kayıtlar için referans olarak saklanmaktadır.
PhantomJS, başsız bir tarayıcıdır. JavaKomut dosyası API'si. Tarihsel olarak başsız web sitesi testleri, web sayfalarına erişim ve bunları manipüle etme amacıyla kullanılmıştır ve standart DOM API'si ile birlikte gelir.
PhantomJS'i kullanmak için SeleniumGhostDriver'a ihtiyacınız var. Hayalet Sürücü WebDriver Wire Protokolünün düz metin olarak bir uygulamasıdır. JavaPhantomJS için yazılmış betik.
PhantomJS'nin sonraki sürümleri entegre GhostDriver, yani Ayrı olarak yüklemenize gerek yok.
Sistem şu şekilde çalışıyor:
Koşu Adımları Selenium PhantomJS ile
) 1 Adım ihtiyacınız olan Eclipse 'da Selenium yüklü.
) 2 Adım PhantomJS'yi indirin okuyun.
) 3 Adım Extracİndirilen klasörü Program Files içine yerleştirin.
) 4 Adım PhantomJS Sürücüsünü şuradan indirin: okuyunJAR dosyasını projenize ekleyin.
) 5 Adım Aşağıdaki kodu yapıştırın. 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();
}
}
) 6 Adım Kodu çalıştırın. Çıktıyı konsolda göreceksiniz ve hiçbir tarayıcı başlatılmayacak.
NOT: İlk çalıştırmada, ayarlarınıza bağlı olarak, bir güvenlik uyarısı görebilirsiniz. Windows PhantomJS'nin çalışmasına izin vermek için tıklayın. Erişime izin.
Birçok kuruluş geçmişte PhantomJS'yi aşağıdaki gibi görevler için kullanmıştır:
- Başsız test
- Ekran görüntüsü
- Sayfa otomasyonu
- Ağ izleme
- Kullanıcıları için kontrol paneli ekran görüntüleri oluşturma
- Komut satırında birim testleri çalıştırma
- HTML'den PDF'ye çalışan el kitapları oluşturma
- Test paketi için QUnit ile birleştirme
Yeni çalışmalar için, bu PhantomJS kullanım örneklerini başsız Chrome, başsız ile değiştirin. FirefoxYa da Playwright gibi, sürekli güvenlik ve görüntüleme güncellemeleri alan platformlar.






