HTMLUnitDriver u SeleniumVodič za preglednik bez glave

⚡ Pametni sažetak

HtmlUnitDriver je najbrža implementacija bez grafičkog prikaza. Selenium WebDriver, dok je PhantomJS, nekoć popularni preglednik bez grafičkog koda temeljen na GhostDriveru, zastario od 2018. i sada ga je zamijenio Chrome bez grafičkog koda, Firefoxi Playwright za moderne automatizirane tijekove rada.

  • 🤖 Koncept bez glave: trčanje Selenium testovi bez vidljivog GUI-ja kako bi se uštedjelo vrijeme CPU-a, memorije i izvršavanja u CI cjevovodima.
  • Snaga HTMLUnitDrivera: Čisto Java motor, bez vanjskog binarnog programa, idealan za brze provjere na HTTP razini i brze interakcije s obrascima.
  • 🚀 Zastara PhantomJS-a: Razvoj PhantomJS-a zaustavljen je 2018.; timovi bi trebali migrirati na Chrome bez grafičkog prikaza, bez grafičkog prikaza Firefox, ili Dramski pisac.
  • Moderne alternative: Bezglavi Chrome i Firefox ponuditi točnu JavaRenderiranje skripti, DevTools protokol i bolje otklanjanje pogrešaka.
  • 🧪 Najbolji slučajevi upotrebe: Dimne provjere, regresijski paketi, testiranje opterećenja i poslovi kontinuirane integracije na Linux runnerima bez glave.

HTMLUnitDriver u Selenium

Headless preglednik je web preglednik bez grafičkog korisničkog sučelja. Može se izvoditi u pozadini bez vizualnog distorzije.traccija. Nudi učinkovit i djelotvoran način testiranja web aplikacija uz uštedu vremena i resursa. U ovom članku istražujemo što je preglednik bez glave, kada koristiti testiranje preglednika bez glave i kako ga izvesti pomoću Selenium HtmlUnitDriver i PhantomJS.

Što je preglednik bez glave?

Preglednik bez glave je web preglednik bez grafičkog korisničkog sučeljaOvaj se program ponaša baš kao i običan preglednik, ali ne prikazuje nikakav GUI prozor tijekom izvršavanja.

Neki primjeri upravljačkih programa preglednika bez glave uključuju:

  • HtmlUnit
  • Duh
  • PhantomJS (zastarjelo)
  • ZombieJS
  • Watir-web drajver
  • Krom bez glave
  • Bezglav Firefox

Kada koristiti bezglavo testiranje preglednika?

U današnjem digitalnom dobu, web aplikacije su izrađene tako da budu kompatibilne sa širokim rasponom uređaja i platformi. To stvara izazov za razvojne programere koji moraju osigurati da njihove aplikacije besprijekorno rade u različitim okruženjima. Testiranje preglednika bez grafičkog korisničkog sučelja idealno je rješenje jer omogućuje razvojnim programerima validaciju svojih web aplikacija bez grafičkog korisničkog sučelja. Korištenjem testiranja preglednika bez grafičkog korisničkog sučelja, razvojni programeri mogu brzo obuhvatiti složene web aplikacije s mnogim komponentama i ovisnostima, otvarajući put bržem razvoju, manjem broju grešaka i zadovoljnijim korisnicima.

Bezglavo testiranje preglednika s Selenium

Selenium je moćan alat za testiranje preglednika bez grafičkog prikaza, koji omogućuje programerima pokretanje automatiziranih testova bez vidljivog korisničkog sučelja. Pokretanjem testova u pozadini, Selenium štedi vrijeme i resurse, a ujedno pomažeping identificirati probleme koji možda nisu očiti u tradicionalnom okruženju za testiranje temeljenom na korisničkom sučelju. To uključuje probleme s performansama i izgledom koji postaju očiti tek u okruženju bez grafičkog prikaza. Međutim, važno je uravnotežiti testiranje bez grafičkog prikaza s tradicionalnim testovima temeljenim na korisničkom sučelju kako bi se osigurala potpuna pokrivenost.

Popularni primjeri bezglavih preglednika

Dostupni su mnogi preglednici bez grafičkog prikaza, svaki sa svojim značajkama i prednostima, što ih čini prikladnima za različite slučajeve upotrebe. O njima ćemo govoriti u nastavku.

FantomJS

Obavijest o ukidanju: Aktivni razvoj PhantomJS-a zaustavljen je 2018. godine i projekt se više ne održava. Novi projekti trebali bi preferirati Chrome bez grafičkog prikaza, Firefox, ili dramaturg za modernu automatizaciju bez glave. Primjer PhantomJS-a u nastavku uključen je samo kao referenca.

PhantomJS je preglednik bez grafičkog prikaza koji koristi WebKit kao mehanizam za renderiranje i podržava web standarde poput HTML5, CSS3 i JavaSkripta. Može se koristiti za snimanje zaslona i automatizaciju stranica. Otvorenog je koda i kompatibilan je s više operativnih sustava.

Primjer Selenium s bezglavim PhantomJS u 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 je najpopularniji preglednik na planetu i nudi i headless način rada. Može se koristiti na mnogim platformama i podržava popularne programske jezike i okvire. Njegovi ugrađeni alati za otklanjanje pogrešaka i opsežna dokumentacija olakšavaju korištenje i rješavanje bilo kakvih problema koji se mogu pojaviti tijekom testiranja.

Primjer Headless Chromea s 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 je popularan web preglednik koji se također može koristiti kao preglednik bez grafičkog prikaza za testiranje. Jedna od prednosti korištenja Firefox kao preglednik bez grafičkog dizajna, njegova mala težina čini ga svestranom opcijom za testiranje na različitim operativnim sustavima. U kombinaciji s opsežnom dokumentacijom i podrškom zajednice, Firefox je izvrstan izbor za timove koji eksperimentiraju s automatizacijom preglednika bez grafičkog prikaza.

Primjer bez glave Firefox sa 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()

Prednosti bezglavog testiranja preglednika

  • Brže izvođenje testa
  • Isplativo testiranje
  • Bolja pokrivenost testovima
  • Fleksibilnost u izvođenju testova
  • Jednostavnija integracija s CI/CD cjevovodima

Nedostaci bezglavog testiranja preglednika

  • Nedostatak vidljivog grafičkog korisničkog sučelja za ručni pregled
  • Otklanjanje pogrešaka može biti teže bez ekrana
  • Ograničena pokrivenost ponašanja specifičnog za preglednik

HtmlUnitDriver

HtmlUnitDriver je najlakša i najbrža implementacija preglednika bez grafičkog prikaza. Selenium WebDriver. Temelji se na HtmlUnit-u i poznat je i kao Headless upravljački program preglednikaPonaša se kao Chrome, IE ili Firefox upravljački program, ali nema grafičko korisničko sučelje, pa izvršavanje testa nije vidljivo na zaslonu. HtmlUnitDriver se i dalje održava i distribuira putem org.seleniumhq.selenium:htmlunit3-driver Mavenov artefakt.

Značajke HtmlUnitDrivera:

  • Podrška za HTTPS i HTTP protokole
  • Podrška za HTML odgovore (klikanje na poveznice, slanje obrazaca, korištenje DOM modela HTML dokumenta i još mnogo toga)
  • Podrška za kolačiće
  • Podrška za proxy poslužitelj
  • Podrška za osnovnu i NTLM provjeru autentičnosti
  • Solidan JavaScript podrška
  • Podrška za GET i POST metode slanja
  • Mogućnost prilagodbe zaglavlja zahtjeva koji se šalju na poslužitelj
  • Mogućnost kontrole trebaju li neuspjeli odgovori poslužitelja izbacivati ​​iznimke ili se vraćati kao stranice odgovarajućeg tipa

Koraci za korištenje HtmlUnitDrivera s Selenium

Korak 1) In Eclipse, kopirajte sljedeći kod. Dodajte standard Selenium datoteke biblioteke u projekt. Nisu potrebne dodatne JAR datoteke.

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

Korak 2) Pokrenite kod. Primijetit ćete da se nije pokrenuo nijedan preglednik, a rezultati su prikazani u konzoli.

Koraci za korištenje HtmlUnitDrivera s Selenium

Prednosti HtmlUnitDrivera

  • Budući da ne koristi grafičko korisničko sučelje (GUI), testovi se izvode u pozadini bez vizualnih prekida.
  • U usporedbi s drugim instancama upravljačkih programa, izvršavanje je brže
  • Također možete emulirati različite verzije preglednika prilikom izvođenja testova putem HtmlUnitDrivera.
  • Neovisan je o platformi i jednostavan je za istovremeno izvođenje nekoliko testova. Idealan je za ispitivanje opterećenja.

Ograničenja:

  • Ne može u potpunosti oponašati JavaPonašanje skripti svakog pravog preglednika

FantomJS

Podsjetnik: PhantomJS je zastario i više se ne održava. Za novi headless rad, koristite Selenium s Chromeom bez glave ili Firefoxili prijeđite na Dramski pisac. Odjeljak u nastavku ostaje samo za referencu na starije verzije.

PhantomJS je preglednik bez headlessa s JavaScript API. Povijesno se koristio za testiranje web stranica bez zadavanja headlessa, pristup i manipuliranje web stranicama te dolazi sa standardnim DOM API-jem.

Za korištenje PhantomJS-a s Selenium, potreban vam je GhostDriver. GhostDriver je implementacija WebDriver Wire protokola u običnom obliku JavaSkripta za PhantomJS.

Kasnija izdanja PhantomJS-a integriran GhostDriver, dakle nema potrebe da se zasebno instalira.

Evo kako sustav funkcionira:

FantomJS

Koraci za trčanje Selenium s PhantomJS-om

Korak 1) Trebate Eclipse sa Selenium instaliran.

Korak 2) Preuzmite PhantomJS ovdje.

Koraci za trčanje Selenium S PhantomJS-om

Korak 3) ExtracPreuzetu mapu spremite u Program Files.

Koraci za trčanje Selenium S PhantomJS-om

Korak 4) Preuzmite upravljački program PhantomJS s ovdjeDodajte JAR u svoj projekt.

Koraci za trčanje Selenium S PhantomJS-om

Korak 5) Zalijepite sljedeći kod u 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();			
           }		
}

Korak 6) Pokrenite kod. Vidjet ćete izlaz u konzoli i nijedan preglednik se neće pokrenuti.

NAPOMENA: Prilikom prvog pokretanja, ovisno o vašim postavkama, možete vidjeti sigurnosno upozorenje od Windows kako biste omogućili pokretanje PhantomJS-a. Kliknite Dopusti pristup.

Koraci za trčanje Selenium S PhantomJS-om

Mnoge organizacije su povijesno koristile PhantomJS za zadatke kao što su:

  • Bezglavo testiranje
  • Snimka zaslona
  • Automatizacija stranice
  • Praćenje mreže
  • Iscrtavanje snimaka zaslona nadzorne ploče za korisnike
  • Pokretanje jediničnih testova u naredbenom retku
  • Generiranje priručnika za zaposlenike iz HTML-a u PDF
  • Kombiniranje s QUnitom za testni paket

Za novi rad, zamijenite ove slučajeve upotrebe PhantomJS-a s Chromeom bez glave, bez glave Firefoxili Playwright, koji primaju stalna sigurnosna ažuriranja i ažuriranja za renderiranje.

Pitanja i odgovori

Headless preglednik je web preglednik koji radi bez grafičkog korisničkog sučelja. Selenium, upravljački programi bez headlessa kao što su HtmlUnitDriver, Chrome bez headlessa i Firefox izvršavati testove u pozadini, što štedi resurse i ubrzava automatizaciju.

Ne. Razvoj PhantomJS-a je obustavljen 2018. godine i projekt se više ne održava. Selenium je također uklonio PhantomJSDriver iz nedavnih izdanja. Novi testovi trebali bi koristiti Chrome bez grafičkog prikaza, Firefoxili umjesto toga Dramski pisac.

HtmlUnitDriver je čisti Java motor, vrlo brz i ne treba binarni fajl preglednika, ali ima ograničena JavaVjernost skripte. Chrome bez glave koristi pravi Blink engine, tako da renderira moderno. JavaWeb-lokacije s puno skripti precizno, po cijenu većeg korištenja resursa.

Koristiti Selenium s Chromeom bez glave ili bez glave Firefox za testiranje točno u pregledniku ili usvojite Playwright za paralelnu automatizaciju između preglednika. Ovi alati primaju aktivna sigurnosna ažuriranja i podržavaju moderne značajke kao što su DevTools Protocol i presretanje mreže.

Alati pokretani umjetnom inteligencijom mogu automatski ispraviti lokatore kada se DOM promijeni, predvidjeti nestabilne testove i analizirati snimke zaslona za vizualne regresije. To smanjuje broj neispravnih izvršavanja bez zadanih podataka u CI-ju i pomaže QA timovima da održe stabilnost. Selenium cjevovodi s manje ručne intervencije.

Da. Moderni AI asistenti mogu generirati Selenium Skripte WebDrivera u Java, Python, ili JavaSkripta iz koraka na običnom engleskom jeziku, uključujući opcije bez ispisa za Chrome ili FirefoxUvijek provjerite generirani kod za ispravne čekanja, selektore i sigurnost prije pokretanja u CI.

Sažmite ovu objavu uz: