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 Konsept: koşmak Selenium CI işlem hatlarında CPU, bellek ve yürütme süresinden tasarruf sağlamak için görünür bir GUI'si olmayan testler.
  • ⚙️ HtmlUnitDriver Gücü: SAF Java Harici ikili dosya gerektirmeyen, hızlı HTTP seviyesi kontrolleri ve hızlı form etkileşimleri için ideal motor.
  • ???? PhantomJS'nin Kullanımdan Kaldırılması: PhantomJS geliştirme süreci 2018'de durduruldu; ekipler başsız Chrome'a ​​geçmelidir. FirefoxYa da oyun yazarı.
  • Modern Alternatifler: Başsız Krom ve Firefox doğru teklif JavaKomut dosyası oluşturma, Geliştirici Araçları Protokolü ve daha iyi hata ayıklama.
  • 🧪 En İyi Kullanım Durumları: Linux sunucularında temel sistem testleri, regresyon testleri, yük testleri ve sürekli entegrasyon işlemleri.

HTMLUnitDriver'da Selenium

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'ı Kullanma Adımları Selenium

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:

PhantomJS

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.

Çalıştırılacak Adımlar Selenium PhantomJS ile

) 3 Adım Extracİndirilen klasörü Program Files içine yerleştirin.

Çalıştırılacak Adımlar Selenium PhantomJS ile

) 4 Adım PhantomJS Sürücüsünü şuradan indirin: okuyunJAR dosyasını projenize ekleyin.

Çalıştırılacak Adımlar Selenium PhantomJS ile

) 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.

Çalıştırılacak Adımlar Selenium PhantomJS ile

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.

SSS

Başsız tarayıcı, grafiksel kullanıcı arayüzü olmadan çalışan bir web tarayıcısıdır. SeleniumHtmlUnitDriver gibi başsız sürücüler, başsız Chrome ve başsız Firefox Testleri arka planda çalıştırarak kaynak tasarrufu sağlar ve otomasyon paketlerini hızlandırır.

Hayır. PhantomJS'nin geliştirilmesi 2018'de askıya alındı ​​ve proje artık sürdürülmüyor. Selenium Ayrıca son sürümlerden PhantomJSDriver'ı da kaldırdı. Yeni testlerde başsız Chrome kullanılmalıdır. FirefoxYa da oyun yazarı.

HtmlUnitDriver tamamen saf bir sürücüdür. Java Motoru çok hızlı ve tarayıcı ikili dosyasına ihtiyaç duymuyor, ancak sınırlı özellikleri var. JavaKomut dosyası doğruluğu. Başsız Chrome, gerçek Blink motorunu kullanır, bu nedenle modern bir görünüm sunar. JavaYoğun komut dosyası kullanan siteler, daha yüksek kaynak kullanımı pahasına doğru şekilde çalışır.

Kullanım Selenium başsız Chrome veya başsız ile Firefox Tarayıcıya özgü testler için Playwright'ı kullanabilir veya paralel tarayıcılar arası otomasyon için Playwright'ı benimseyebilirsiniz. Bu araçlar aktif güvenlik güncellemeleri alır ve Geliştirici Araçları Protokolü ve ağ müdahalesi gibi modern özellikleri destekler.

Yapay zekâ destekli araçlar, DOM değiştiğinde konum belirleyicileri otomatik olarak onarabilir, kararsız testleri tahmin edebilir ve görsel gerilemeler için ekran görüntülerini analiz edebilir. Bu, CI'daki bozuk başsız çalıştırmaları azaltır ve QA ekiplerinin istikrarlı bir şekilde çalışmasına yardımcı olur. Selenium Daha az manuel müdahale gerektiren işlem hatları.

Evet. Modern yapay zeka asistanları üretebilir. Selenium WebDriver komut dosyaları Java, Pythonya da JavaChrome veya başka bir işletim sistemi için başsız mod seçeneklerini de içeren, anlaşılır İngilizce adımlarla yazılmış betik. FirefoxCI'da çalıştırmadan önce oluşturulan kodu her zaman doğru bekleme süreleri, seçiciler ve güvenlik açısından gözden geçirin.

Bu yazıyı şu şekilde özetleyin: