HTMLUnitDriver i Selenium

En hodeløs nettleser er en nettleser uten et grafisk brukergrensesnitt. Den kan kjøre i bakgrunnen uten visuelle distraksjoner. Det tilbyr en effektiv og effektiv måte å teste nettapplikasjoner på samtidig som du sparer tid og ressurser. I denne opplæringen vil vi dykke inn i hva en hodeløs nettleser er, når du skal bruke hodeløs nettlesertesting, og hvordan du utfører den ved å bruke Selenium.

Hva er Headless Browser?

En hodeløs nettleser er en nettleser uten et grafisk brukergrensesnitt. Dette programmet vil oppføre seg akkurat som en nettleser, men vil ikke vise noen GUI.

Noen av eksemplene på hodeløse sjåfører inkluderer

  • HtmlUnit
  • Ghost
  • PhantomJS
  • ZombieJS
  • Watir-webdriver

Når skal man bruke hodeløs nettlesertesting?

I dagens digitale tidsalder er nettapplikasjoner utviklet for å være kompatible med et bredt spekter av enheter og plattformer. Dette utgjør ofte en utfordring for nettstedsutviklere som trenger å sikre at applikasjonene deres fungerer sømløst på tvers av disse plattformene. Headless nettlesertesting er en ideell løsning for dette problemet, da det lar utviklere teste webapplikasjonene sine uten behov for et grafisk brukergrensesnitt. Ved å bruke hodeløs nettlesertesting kan utviklere enkelt teste komplekse nettapplikasjoner med flere komponenter og avhengigheter, og baner vei for raskere utvikling, feilfri kode og fornøyde brukere.

Hodeløs nettlesertesting med Selenium

Selenium er et kraftig verktøy for hodeløs nettlesertesting, som lar utviklere kjøre automatiserte tester uten behov for et synlig brukergrensesnitt. Ved å kjøre tester i bakgrunnen, Selenium kan spare tid og ressurser samtidig som det hjelper med å identifisere problemer som kanskje ikke er tydelige i et tradisjonelt brukergrensesnittbasert testmiljø. Dette inkluderer ytelsesrelaterte problemer og layoutproblemer som kanskje bare blir tydelige i en hodeløs setting. Det er imidlertid viktig å huske på begrensningene ved hodeløs testing og balansere den med tradisjonelle UI-baserte metoder for å sikre omfattende testdekning.

Populære eksempler på hodeløse nettlesere

Det er mange hodeløse nettlesere tilgjengelig, hver med sine egne unike funksjoner og fordeler, noe som gjør dem egnet for forskjellige brukstilfeller. Vi diskuterer dem nedenfor:

PhantomJS

PhantomJS er en hodeløs nettleser som bruker WebKit som sin gjengivelsesmotor og støtter ulike nettstandarder som HTML5, CSS3 og JavaManus. Den kan brukes til skjermopptak og sideautomatiseringsoppgaver. Den er åpen kildekode og kompatibel med flere operativsystemer.

Eksempel Selenium med Headless PhantomJS inn 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()

Chrome

Chrome er den mest populære nettleseren på planeten og tilbyr også en hodeløs funksjon. Den kan brukes på tvers av flere plattformer og støtter programmeringsspråk og rammeverk. Dens innebygde feilsøkingsverktøy og omfattende dokumentasjon gjør det enkelt å bruke og feilsøke eventuelle problemer som kan oppstå under testing.

Eksempel på Headless Chrome med 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 er en populær nettleser som også kan brukes som en hodeløs nettleser for testformål. En av fordelene med å bruke Firefox som en hodeløs nettleser er dens lette natur, noe som gjør den til et allsidig alternativ for testing på forskjellige operativsystemer. I tillegg, med sin omfattende dokumentasjon og samfunnsstøtte, Firefox er et utmerket valg for de som ønsker å eksperimentere med hodeløs nettleserteknologi.

Eksempel på Headless Firefox med 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()

Fordeler med hodeløs nettlesertesting

  • Raskere testutførelse
  • Kostnadseffektiv testing
  • Bedre testdekning
  • Fleksibilitet i kjøreprøver
  • Integrasjon med CI/CD-rørledninger

Ulemper med hodeløs nettlesertesting

  • Mangel på GUI
  • Vanskeligheter med å feilsøke
  • Begrenset nettleserstøtte

HTMLUnitDriver

HTML UnitDriver er den letteste og raskeste implementeringen hodeløse nettleseren for WebDriver. Den er basert på HtmlUnit. Det er kjent som Hodeløs nettleserdriver. Det er det samme som Chrome, IE eller FireFox driver, men den har ikke GUI så man kan ikke se testkjøringen på skjermen.

Funksjoner av HTML-enhetsdriver

  • Støtte for HTTPS- og HTTP-protokollene
  • Støtte for HTML-svar (klikke på lenker, sende inn skjemaer, gå gjennom DOM-modellen til HTML-dokumentet osv.)
  • Støtte for informasjonskapsler
  • Støtte for proxy-server
  • Støtte for grunnleggende og NTLM-autentisering
  • Utmerket JavaScript støtte
  • Støtte for innsendingsmetoder GET og POST
  • Evne til å tilpasse forespørselshodene som sendes til serveren
  • Evne til å bestemme om sviktende svar fra serveren skal gi unntak eller skal returneres som sider av riktig type

Trinn for å bruke HTMLUnit-driveren med Selenium

Trinn 1) In Eclipse, kopier følgende kode. Legg til standard selenbibliotekfilene til prosjektet. Ingen ekstra jar-filer kreves.

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

Trinn 2) Kjør koden. Du vil observere at ingen nettleser er startet og resultatene vises i konsollen.

Trinn for å bruke HTMLUnit-driveren med Selenium

Fordeler med HTML-enhetsdriver:

  • Siden den ikke bruker noen GUI for å teste, vil testene dine kjøre i bakgrunnen uten visuelle avbrudd
  • Sammenlignet med alle andre tilfeller er kjøringen raskere
  • For å kjøre testene gjennom HtmlUnit-driveren kan du også velge andre nettleserversjoner
  • Det er plattformuavhengig og enklere å kjøre flere tester samtidig. Ideell for Load Testing.

Begrensninger:

  • Den kan ikke etterligne andre nettlesere JavaSkriptoppførsel

PhantomJS

PhantomJS er en hodeløs nettleser med JavaScript API. Det er en optimal løsning for Headless Website Testing, tilgang til og manipulere nettsider og leveres med standard DOM API.

For å bruke PhantomJS med Seleniun, må man bruke GhostDriver. GhostDriver er en implementering av Webdriver Wire-protokollen i enkel JS for PhantomJS.

Den siste utgivelsen av PhatomJS har integrert GhostDriver og det er ikke nødvendig å installere den separat.

Her er hvordan systemet fungerer-

PhantomJS

Trinn for å løpe Selenium med PhatomJS

Trinn 1) Du trenger Eclipse med Selenium installerte

Trinn 2) Last ned PhantomJS her.

Trinn for å kjøre Selenium Med PhatomJS

Trinn 3) Pakk ut den nedlastede mappen til Program Files

Trinn for å kjøre Selenium Med PhatomJS

Trinn 4) Last ned PhantomJS-driveren fra her.. Legg krukken til prosjektet ditt

Trinn for å kjøre Selenium Med PhatomJS

Trinn 5) Lim inn følgende kode i formørkelse

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

Trinn 6) Kjør koden. Du vil se utdataene vises i konsollen og ingen nettleser er startet.

MERKNADER: Ved første kjøring, basert på innstillingene dine, kan du få sikkerhetsadvarsel fra Windows for å tillate å kjøre PhantomJS. Klikk på Tillat tilgang.

Trinn for å kjøre Selenium Med PhatomJS

Mange organisasjoner bruker Phantom.JS til forskjellige formål, for eksempel,

  • Hodeløs testing
  • Screen Capture
  • Sideautomatisering
  • Network Monitoring
  • For å gjengi skjermbilder av dashbord for brukerne deres
  • For å kjøre enhetstester på kommandolinjen
  • For å generere medarbeiderhåndbøker fra HTML til PDF
  • Kombinert med QUnit for testsuiten

Sammendrag

For å teste applikasjonen raskt i forskjellige nettlesere og uten visuelle avbrudd, hodeløs nettleser Testing brukes. På grunn av hastigheten, nøyaktigheten og de lett tilgjengelige funksjonene, blir HTML-enhetsdriveren og PhantomJS stadig mer populær for hodeløs nettleserautomatiseringstesting. Ved å følge noen enkle trinn får du vite hvor enkelt disse verktøyene kan integreres med andre verktøy og kan utføre testkoden.

Oppsummer dette innlegget med: