Browser fără cap Selenium (HTMLUnitDriver)

Un browser fără cap este un browser web fără interfață grafică de utilizator. Poate rula în fundal fără distrageri vizuale. Oferă o modalitate eficientă și eficientă de a testa aplicațiile web, economisind în același timp timp și resurse. În acest tutorial, ne vom scufunda în ce este un browser fără cap, când să folosiți testarea browserului fără cap și cum să o efectuați folosind Selenium.

Ce este Headless Browser?

Un browser fără cap este un browser web fără interfață grafică cu utilizatorul. Acest program se va comporta la fel ca un browser, dar nu va afișa nicio interfață grafică.

Unele dintre exemplele de șoferi fără cap includ

  • HtmlUnit
  • Fantomă
  • PhantomJS
  • ZombieJS
  • Watir-webdriver

Când să folosiți testarea browserului fără cap?

În era digitală de astăzi, aplicațiile web sunt dezvoltate pentru a fi compatibile cu o gamă largă de dispozitive și platforme. Acest lucru reprezintă adesea o provocare pentru dezvoltatorii de site-uri web care trebuie să se asigure că aplicațiile lor funcționează perfect pe aceste platforme. Testarea browserului fără cap este o soluție ideală pentru această problemă, deoarece permite dezvoltatorilor să-și testeze aplicațiile web fără a fi nevoie de o interfață grafică pentru utilizator. Utilizând testarea browserului fără cap, dezvoltatorii pot testa cu ușurință aplicații web complexe cu mai multe componente și dependențe, deschizând calea pentru o dezvoltare mai rapidă, cod fără erori și utilizatori mulțumiți.

Testarea browserului fără cap cu Selenium

Selenium este un instrument puternic pentru testarea browserului fără cap, permițând dezvoltatorilor să ruleze teste automate fără a fi nevoie de o interfață de utilizator vizibilă. Rulând teste în fundal, Selenium poate economisi timp și resurse, ajutând în același timp la identificarea problemelor care ar putea să nu fie evidente într-un mediu de testare tradițional bazat pe UI. Aceasta include probleme legate de performanță și probleme de aspect care pot deveni evidente doar într-un cadru fără cap. Cu toate acestea, este important să țineți cont de limitările testării fără cap și să le echilibrați cu metodele tradiționale bazate pe interfața de utilizare pentru a asigura o acoperire cuprinzătoare a testelor.

Exemple populare de browsere fără cap

Există multe browsere fără cap disponibile, fiecare cu propriile caracteristici și beneficii unice, făcându-le potrivite pentru diferite cazuri de utilizare. Le discutăm mai jos: -

PhantomJS

PhantomJS este un browser fără cap care utilizează WebKit ca motor de randare și acceptă diverse standarde web, cum ar fi HTML5, CSS3 și JavaScenariul. Poate fi folosit pentru captură de ecran și sarcini de automatizare a paginii. Este open-source și compatibil cu mai multe sisteme de operare.

Exemplu de Selenium cu Headless PhantomJS în 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 este cel mai popular browser de pe planetă și oferă și o funcție headless. Poate fi utilizat pe mai multe platforme și acceptă limbaje și cadre de programare. Instrumentele sale de depanare încorporate și documentația extinsă fac ușor de utilizat și depanat orice probleme care pot apărea în timpul testării.

Exemplu de cromat fără cap cu 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 este un browser web popular care poate fi folosit și ca browser fără cap în scopuri de testare. Unul dintre beneficiile utilizării Firefox ca browser fără cap este natura sa ușoară, ceea ce îl face o opțiune versatilă pentru testare pe diferite sisteme de operare. În plus, cu documentația sa extinsă și sprijinul comunității, Firefox este o alegere excelentă pentru cei care doresc să experimenteze cu tehnologia browserului fără cap.

Exemplu de fără cap Firefox cu 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()

Avantajele testării browserului Headless

  • Execuție mai rapidă a testului
  • Testare rentabilă
  • Acoperire mai bună a testării
  • Flexibilitate în derularea testelor
  • Integrare cu conducte CI/CD

Dezavantajele testării browserului Headless

  • Lipsa GUI
  • Dificultăți în depanare
  • Suport limitat pentru browser

HTMLUnitDriver

HTML UnitDriver este cel mai ușor și cel mai rapid browser fără cap de implementare pentru WebDriver. Se bazează pe HtmlUnit. Este cunoscut ca Driver de browser fără cap. Este la fel ca Chrome, IE sau FireFox driver, dar nu are GUI, așa că nu se poate vedea execuția testului pe ecran.

Caracteristicile driverului de unitate HTML

  • Suport pentru protocoalele HTTPS și HTTP
  • Suport pentru răspunsuri HTML (făcând clic pe linkuri, trimiterea formularelor, parcurgerea modelului DOM al documentului HTML etc.)
  • Suport pentru cookie-uri
  • Suport server proxy
  • Suport pentru autentificare de bază și NTLM
  • Excelent JavaScenariu a sustine
  • Suport pentru metodele de trimitere GET și POST
  • Posibilitatea de a personaliza anteturile cererilor care sunt trimise către server
  • Abilitatea de a determina dacă răspunsurile eșuate de la server ar trebui să arunce excepții sau să fie returnate ca pagini de tipul adecvat

Pași pentru a utiliza driverul HTMLUnit cu Selenium

Pas 1) In Eclipse, copiați următorul cod. Adăugați fișierele standard ale bibliotecii de seleniu la proiect. Nu sunt necesare fișiere jar suplimentare.

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

Pasul 2) Rulați codul. Veți observa că niciun browser nu este lansat și rezultatele sunt afișate în consolă.

Pași pentru a utiliza driverul HTMLUnit cu Selenium

Beneficiile driverului de unitate HTML:

  • Deoarece nu folosește nicio interfață grafică pentru testare, testele dvs. vor rula în fundal fără nicio întrerupere vizuală
  • În comparație cu toate celelalte instanțe, execuția este mai rapidă
  • Pentru a rula testele prin driverul HtmlUnit, puteți selecta și alte versiuni de browser
  • Este independent de platformă și mai ușor să rulați mai multe teste simultan. Ideal pentru Încărcarea testelor.

Limitări:

  • Nu poate emula alte browsere JavaComportamentul scriptului

PhantomJS

PhantomJS este un browser fără cap cu JavaScript API. Este o soluție optimă pentru testarea site-ului web Headless, accesarea și manipularea paginilor web și vine cu API-ul DOM standard.

Pentru a utiliza PhantomJS cu Seleniun, trebuie să utilizați GhostDriver. GhostDriver este o implementare a protocolului Webdriver Wire în JS simplu pentru PhantomJS.

Cea mai recentă versiune a PhatomJS are integrate GhostDriver și nu este nevoie să-l instalați separat.

Iată cum funcționează sistemul -

PhantomJS

Pași de alergat Selenium cu PhatomJS

Pas 1) Ai nevoie de Eclipse cu Selenium instalat

Pas 2) Descărcați PhantomJS aici

Pași pentru a alerga Selenium Cu PhatomJS

Pas 3) Extrageți folderul descărcat în Program Files

Pași pentru a alerga Selenium Cu PhatomJS

Pas 4) Descărcați driverul PhantomJS de pe aici. Adăugați borcanul în proiectul dvs

Pași pentru a alerga Selenium Cu PhatomJS

Pas 5) Lipiți următorul cod î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();			
           }		
}

Pas 6) Rulați codul. Veți observa că rezultatul este afișat în consolă și nu este lansat niciun browser.

NOTĂ: La prima rulare, pe baza setărilor dvs., este posibil să primiți avertismente de securitate de la Windows pentru a permite rularea PhantomJS. Faceți clic pe Permiteți accesul.

Pași pentru a alerga Selenium Cu PhatomJS

Multe organizații folosesc Phantom.JS în diverse scopuri, de exemplu,

  • Testare fără cap
  • Captură de ecran
  • Automatizarea paginii
  • Monitorizarea rețelei
  • Pentru a reda capturi de ecran din tabloul de bord pentru utilizatorii lor
  • Pentru a rula teste unitare pe linia de comandă
  • Pentru a genera manuale ale angajaților din HTML în PDF
  • Combinat cu QUnit pentru suita de teste

Rezumat

Pentru a testa rapid aplicația în diverse browsere și fără nicio întrerupere vizuală, browser fără cap Testarea este folosit. Datorită vitezei, preciziei și caracteristicilor ușor de accesat, driverul unității HTML și PhantomJS câștigă popularitate pentru testarea automată a browserului fără cap. Urmând câțiva pași simpli, veți afla cât de ușor pot fi integrate aceste instrumente cu alte instrumente și pot executa codul de testare.