HTMLUnitDriver be SeleniumFej nélküli böngésző bemutatója

⚡ Okos összefoglaló

A HtmlUnitDriver a leggyorsabb headless implementációja a Selenium A WebDriver, míg a PhantomJS, egykor népszerű, GhostDriver alapú, fej nélküli böngésző, 2018 óta elavult, és mostantól a fej nélküli Chrome váltja fel. Firefox, és a Playwright a modern automatizálási munkafolyamatokhoz.

  • 🤖 Fej nélküli koncepció: futás Selenium látható grafikus felhasználói felület nélküli tesztek a CPU, a memória és a végrehajtási idő megtakarítása érdekében a konfigurációs folyamatok (CI) folyamatain keresztül.
  • 🇧🇷 HtmlUnitDriver erőssége: Tiszta Java motor, nincs külső bináris fájl, ideális gyors HTTP-szintű ellenőrzésekhez és gyors űrlap-interakciókhoz.
  • 🚀 PhantomJS elavulás: A PhantomJS fejlesztése 2018-ban leállt; a csapatoknak át kellene térniük a headless Chrome-ra, headlessre Firefox, vagy Drámaíró.
  • Modern alternatívák: Fej nélküli króm és Firefox pontos ajánlat JavaSzkriptrenderelés, DevTools protokoll és jobb hibakeresés.
  • 🧪 Legjobb használati esetek: Füstvizsgálatok, regressziós csomagok, terheléstesztelés és folyamatos integrációs feladatok fej nélküli Linux futtatórendszereken.

HTMLUnitDriver be Selenium

A headless böngésző egy grafikus felhasználói felület nélküli webböngésző. Képes a háttérben futtatni vizuális megjelenítés nélkül.tracciók. Hatékony és eredményes módszert kínál webes alkalmazások tesztelésére, miközben időt és erőforrásokat takarít meg. Ebben a cikkben azt vizsgáljuk meg, hogy mi az a fej nélküli böngésző, mikor kell fej nélküli böngészőtesztelést használni, és hogyan kell elvégezni a következő eszközök használatával: Selenium HtmlUnitDriver és PhantomJS.

Mi az a fej nélküli böngésző?

A fej nélküli böngésző egy webböngésző grafikus felhasználói felület nélkülEz a program ugyanúgy viselkedik, mint egy hagyományos böngésző, de futás közben nem jelenít meg grafikus felhasználói felületet.

Néhány példa a fej nélküli böngészőillesztőkre:

  • HtmlUnit
  • szellem
  • PhantomJS (elavult)
  • ZombieJS
  • Watir- webdriver
  • Fej nélküli Chrome
  • Fejetlen Firefox

Mikor használjunk fej nélküli böngészőtesztet?

A mai digitális korban a webes alkalmazásokat úgy készítik, hogy kompatibilisek legyenek a legkülönbözőbb eszközökkel és platformokkal. Ez kihívást jelent a fejlesztők számára, akiknek biztosítaniuk kell alkalmazásaik zökkenőmentes működését különböző környezetekben. A fej nélküli böngészőtesztelés ideális megoldás, mivel lehetővé teszi a fejlesztők számára webes alkalmazásaik validálását grafikus felhasználói felület nélkül. A fej nélküli böngészőtesztelés használatával a fejlesztők gyorsan lefedhetik a sok komponenssel és függőséggel rendelkező összetett webes alkalmazásokat, megnyitva az utat a gyorsabb fejlesztés, a kevesebb hiba és az elégedettebb felhasználók előtt.

Fej nélküli böngésző tesztelése Selenium

Selenium egy hatékony eszköz a fej nélküli böngészőteszteléshez, amely lehetővé teszi a fejlesztők számára, hogy automatizált teszteket futtassanak látható felhasználói felület nélkül. A háttérben futtatott tesztek révén Selenium időt és erőforrásokat takarít meg, miközben segít isping olyan problémák azonosítása, amelyek egy hagyományos, felhasználói felületen alapuló tesztelési környezetben nem feltétlenül nyilvánvalóak. Ide tartoznak azok a teljesítmény- és elrendezési problémák, amelyek csak egy headless környezetben válnak nyilvánvalóvá. Fontos azonban a headless tesztelés és a hagyományos felhasználói felületen alapuló tesztek egyensúlyban tartása a teljes lefedettség biztosítása érdekében.

Népszerű példák fej nélküli böngészőkre

Sokféle fej nélküli böngésző érhető el, mindegyiknek megvannak a saját funkciói és előnyei, amelyek különböző felhasználási esetekre alkalmassá teszik őket. Az alábbiakban ezeket tárgyaljuk.

PhantomJS

Elavulási értesítés: A PhantomJS aktív fejlesztése 2018-ban leállt, és a projektet már nem tartják karban. Az új projekteknek a headless Chrome-ot kell előnyben részesíteniük, a headless... Firefoxvagy Drámaíró modern, fej nélküli automatizáláshoz. Az alábbi PhantomJS példa csak referenciaként szolgál.

A PhantomJS egy fej nélküli böngésző, amely a WebKitet használja renderelőmotorként, és olyan webes szabványokat támogat, mint a HTML5, CSS3 és ... JavaSzkript. Képernyőkép készítésére és oldalautomatizálási feladatokra használható. Nyílt forráskódú és több operációs rendszerrel kompatibilis.

Például az Selenium Fej nélküli PhantomJS bemenettel 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()

króm

A Chrome a bolygó legnépszerűbb böngészője, és headless módot is kínál. Számos platformon használható, és támogatja a népszerű programozási nyelveket és keretrendszereket. Beépített hibakereső eszközei és kiterjedt dokumentációja megkönnyíti a használatát és a tesztelés során felmerülő problémák elhárítását.

Példa a fej nélküli Chrome-ra 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 egy népszerű webböngésző, amely teszteléshez headless böngészőként is használható. A használatának egyik előnye Firefox Headless böngészőként a könnyű helyigénye sokoldalúvá teszi a különböző operációs rendszereken való teszteléshez. Kiterjedt dokumentációjával és közösségi támogatásával együtt... Firefox kiváló választás azoknak a csapatoknak, akik a fej nélküli böngészőautomatizálással kísérleteznek.

Példa a fejetlenre Firefox ahol 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()

A fej nélküli böngészőteszt előnyei

  • Gyorsabb tesztvégrehajtás
  • Költséghatékony tesztelés
  • Jobb tesztlefedettség
  • Rugalmasság a tesztek lefolytatásában
  • Könnyebb integráció CI/CD folyamatokhoz

A fej nélküli böngészőteszt hátrányai

  • Látható grafikus felhasználói felület hiánya a manuális ellenőrzéshez
  • A hibakeresés nehezebb lehet képernyő nélkül
  • Korlátozott böngészőspecifikus viselkedési lefedettség

HtmlUnitDriver

A HtmlUnitDriver a legkönnyebb és leggyorsabb headless böngésző implementáció a következőhöz: Selenium WebDriver. HtmlUnit-on alapul, és más néven a Fej nélküli böngésző-illesztőprogramÚgy viselkedik, mint a Chrome, az IE vagy a Firefox illesztőprogram, de nincs grafikus felhasználói felülete, így a teszt végrehajtása nem látható a képernyőn. A HtmlUnitDriver továbbra is karbantartott és a következőn keresztül kerül terjesztésre: org.seleniumhq.selenium:htmlunit3-driver Maven-ereklye.

A HtmlUnitDriver jellemzői:

  • A HTTPS és HTTP protokollok támogatása
  • HTML válaszok támogatása (linkekre kattintás, űrlapok beküldése, a HTML dokumentum DOM modelljének bejárása és egyebek)
  • A cookie-k támogatása
  • Proxy szerver támogatás
  • Az alap és NTLM hitelesítés támogatása
  • Szilárd JavaForgatókönyv támogatás
  • GET és POST submit metódusok támogatása
  • Lehetőség a kiszolgálónak küldött kérésfejlécek testreszabására
  • Lehetőség annak szabályozására, hogy a szervertől érkező hibás válaszok kivételeket dobjanak-e, vagy a megfelelő típusú oldalakként kerüljenek visszaadásra

A HtmlUnitDriver használatának lépései Selenium

Step 1) In Eclipse, másolja ki a következő kódot. Adja hozzá a szabványt Selenium könyvtárfájlokat a projekthez. Nincs szükség további JAR fájlokra.

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();			
         }		
}

Step 2) Futtassa a kódot. Azt fogja észrevenni, hogy nem indul el böngésző, és az eredmények megjelennek a konzolon.

A HtmlUnitDriver használatának lépései Selenium

A HtmlUnitDriver előnyei

  • Mivel nem használ grafikus felhasználói felületet, a tesztek a háttérben futnak vizuális megszakítás nélkül.
  • Más illesztőprogram-példányokhoz képest a végrehajtás gyorsabb
  • A HtmlUnitDriver segítségével tesztek futtatásakor különböző böngészőverziókat is emulálhatsz.
  • Platformfüggetlen és könnyen futtatható vele több teszt egyidejű futtatása. Ideális a következőkhöz: terhelés tesztelése.

Korlátozások:

  • Nem tudja teljesen utánozni JavaMinden valódi böngészőmotor szkript viselkedése

PhantomJS

Emlékeztető: A PhantomJS elavult és már nem kerül karbantartásra. Új, fejléc nélküli munkákhoz használja a Selenium fej nélküli krómmal vagy Firefox, vagy térjen át a Drámaíróhoz. Az alábbi szakasz csak a korábbi időszakra vonatkozó hivatkozásként szolgál.

A PhantomJS egy fej nélküli böngésző, amely egy JavaScript API. Korábban headless weboldalteszteléshez, weboldalak eléréséhez és kezeléséhez használták, és a szabványos DOM API-val érkezik.

A PhantomJS használata a következővel: Selenium, szükséged van a GhostDriverre. GhostDriver a WebDriver Wire Protocol egy egyszerű implementációja JavaSzkript PhantomJS-hez.

A PhantomJS későbbi kiadásai integrált GhostDriver, szóval nincs szükség külön telepíteni.

Így működik a rendszer:

PhantomJS

Futtatás lépései Selenium a PhantomJS-szel

Step 1) VÁLASSZA A GREEN ARSENAL TERMÉKEIT! Eclipse ahol Selenium telepítve.

Step 2) Töltse le a PhantomJS-t itt .

Lépések a futáshoz Selenium PhantomJS-sel

Step 3) ExtracMásold be a letöltött mappát a Program Files mappába.

Lépések a futáshoz Selenium PhantomJS-sel

Step 4) Töltse le a PhantomJS illesztőprogramot innen itt Adja hozzá a JAR fájlt a projekthez.

Lépések a futáshoz Selenium PhantomJS-sel

Step 5) Illeszd be a következő kódot 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();			
           }		
}

Step 6) Futtasd a kódot. A kimenetet a konzolon fogod látni, és nem indul el a böngésző.

JEGYZET: Az első futtatáskor, a beállításaidtól függően, biztonsági figyelmeztetést láthatsz a következőtől: Windows a PhantomJS futtatásának engedélyezéséhez kattintson ide. Hozzáférés engedélyezése.

Lépések a futáshoz Selenium PhantomJS-sel

Sok szervezet történelmileg használta a PhantomJS-t olyan feladatokra, mint:

  • Fej nélküli tesztelés
  • Képernyőfelvétel
  • Oldalautomatizálás
  • Hálózatfigyelés
  • Irányítópult képernyőképeinek renderelése a felhasználók számára
  • Egységtesztek futtatása parancssorban
  • Munkavállalói kézikönyvek generálása HTML-ből PDF-be
  • QUnit-tal kombinálva a tesztkészlethez

Új munkákhoz cserélje le ezeket a PhantomJS használati eseteket fej nélküli Chrome-ra, fej nélkülire Firefox, vagy a Playwright, amelyek folyamatos biztonsági és megjelenítési frissítéseket kapnak.

GYIK

A headless browser egy olyan webböngésző, amely grafikus felhasználói felület nélkül fut. Selenium, fej nélküli illesztőprogramok, mint például a HtmlUnitDriver, a fej nélküli Chrome és a fej nélküli Firefox teszteket futtathat a háttérben, ami erőforrásokat takarít meg és felgyorsítja az automatizálási csomagokat.

Nem. A PhantomJS fejlesztését 2018-ban felfüggesztették, és a projektet már nem tartják karban. Selenium a PhantomJSDriver-t is eltávolította a legújabb kiadásokból. Az új teszteknek headless Chrome-ot kell használniuk, headless-t. Firefox, vagy inkább Drámaíró.

A HtmlUnitDriver egy tiszta Java motor, nagyon gyors, és nem igényel böngésző bináris fájlt, de korlátozottak a lehetőségei JavaSzkripthűség. A Headless Chrome az igazi Blink motort használja, így modern módon jeleníti meg a képeket. JavaA szkriptekkel teli oldalakat pontosan, de nagyobb erőforrás-felhasználás árán kell lemásolni.

Felhasználás Selenium fej nélküli krómmal vagy fej nélküli Firefox böngészőpontos teszteléshez, vagy a Playwright alkalmazását párhuzamos, böngészőközi automatizáláshoz. Ezek az eszközök aktív biztonsági frissítéseket kapnak, és olyan modern funkciókat támogatnak, mint a DevTools protokoll és a hálózati lehallgatás.

A mesterséges intelligenciával működő eszközök képesek automatikusan javítani a lokátorokat, amikor a DOM megváltozik, előre jelezni a hibás teszteket, és elemezni a képernyőképeket vizuális regressziók szempontjából. Ez csökkenti a hibás, fej nélküli futtatásokat a konfigurációelemzésben (CI), és segít a minőségbiztosítási csapatoknak a stabilitás fenntartásában. Selenium kevesebb kézi beavatkozással járó csővezetékek.

Igen. A modern mesterséges intelligencia asszisztensek képesek generálni Selenium WebDriver szkriptek Java, Pythonvagy JavaSzkript egyszerű angol nyelvű lépésekből, beleértve a Chrome-hoz vagy más platformokhoz készült fejléc nélküli opciókat is FirefoxMindig ellenőrizze a generált kódot a várakozások, szelektorok és biztonság helyessége érdekében, mielőtt CI-ben futtatná.

Foglald össze ezt a bejegyzést a következőképpen: