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.

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.
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:
Koraci za trčanje Selenium s PhantomJS-om
Korak 1) Trebate Eclipse sa Selenium instaliran.
Korak 2) Preuzmite PhantomJS ovdje.
Korak 3) ExtracPreuzetu mapu spremite u Program Files.
Korak 4) Preuzmite upravljački program PhantomJS s ovdjeDodajte JAR u svoj projekt.
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.
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.






