HTMLUnitDriver v Selenium

Bezhlavý prohlížeč je webový prohlížeč bez grafického uživatelského rozhraní. Může běžet na pozadí bez vizuálního rušení. Nabízí efektivní a efektivní způsob testování webových aplikací a zároveň šetří čas a zdroje. V tomto tutoriálu se ponoříme do toho, co je to bezhlavý prohlížeč, kdy použít testování prohlížeče bez hlavy a jak jej provést pomocí Selenium.

Co je to Headless Browser?

Bezhlavý prohlížeč je webový prohlížeč bez grafického uživatelského rozhraní. Tento program se bude chovat jako prohlížeč, ale nebude zobrazovat žádné GUI.

Některé příklady bezhlavých ovladačů zahrnují

  • HtmlUnit
  • Duch
  • PhantomJS
  • ZombieJS
  • Watir- webový ovladač

Kdy použít bezhlavé testování prohlížeče?

V dnešní digitální době jsou webové aplikace vyvíjeny tak, aby byly kompatibilní s širokou škálou zařízení a platforem. To často představuje výzvu pro vývojáře webových stránek, kteří potřebují zajistit bezproblémové fungování jejich aplikací na všech těchto platformách. Bezhlavé testování prohlížeče je ideálním řešením tohoto problému, protože umožňuje vývojářům testovat své webové aplikace bez potřeby grafického uživatelského rozhraní. Pomocí bezhlavého testování prohlížeče mohou vývojáři snadno testovat složité webové aplikace s více komponentami a závislostmi, čímž dláždí cestu pro rychlejší vývoj, kód bez chyb a spokojené uživatele.

Bezhlavé testování prohlížeče s Selenium

Selenium je výkonný nástroj pro bezhlavé testování prohlížeče, který umožňuje vývojářům spouštět automatizované testy bez potřeby viditelného uživatelského rozhraní. Spuštěním testů na pozadí Selenium může ušetřit čas a zdroje a zároveň pomoci identifikovat problémy, které nemusí být zjevné v tradičním testovacím prostředí založeném na uživatelském rozhraní. To zahrnuje problémy související s výkonem a problémy s rozložením, které se mohou projevit pouze v bezhlavém nastavení. Je však důležité mít na paměti omezení bezhlavého testování a vyvážit je tradičními metodami založenými na uživatelském rozhraní, aby bylo zajištěno komplexní pokrytí testováním.

Oblíbené příklady bezhlavých prohlížečů

K dispozici je mnoho bezhlavých prohlížečů, z nichž každý má své vlastní jedinečné funkce a výhody, díky čemuž je vhodný pro různé případy použití. Diskutujeme o nich níže: -

PhantomJS

PhantomJS je bezhlavý prohlížeč, který jako vykreslovací engine využívá WebKit a podporuje různé webové standardy, jako jsou HTML5, CSS3 a JavaSkript. Lze jej použít pro snímání obrazovky a úlohy automatizace stránek. Je open source a je kompatibilní s více operačními systémy.

Příklad Selenium se vstupem Headless PhantomJS 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()

chróm

Chrome je nejoblíbenější prohlížeč na planetě a nabízí také bezhlavou funkci. Lze jej použít na více platformách a podporuje programovací jazyky a rámce. Jeho vestavěné ladicí nástroje a rozsáhlá dokumentace usnadňují používání a odstraňování problémů, které mohou nastat během testování.

Příklad Headless Chrome 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 populární webový prohlížeč, který lze použít také jako bezhlavý prohlížeč pro testovací účely. Jedna z výhod používání Firefox jako bezhlavý prohlížeč je jeho lehká povaha, což z něj činí všestrannou možnost pro testování na různých operačních systémech. Navíc díky rozsáhlé dokumentaci a podpoře komunity Firefox je vynikající volbou pro ty, kteří chtějí experimentovat s technologií bezhlavého prohlížeče.

Příklad Headless Firefox s 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()

Výhody bezhlavého testování prohlížeče

  • Rychlejší provedení testu
  • Nákladově efektivní testování
  • Lepší pokrytí testováním
  • Flexibilita při provádění testů
  • Integrace s CI/CD potrubím

Nevýhody bezhlavého testování prohlížeče

  • Nedostatek GUI
  • Potíže s laděním
  • Omezená podpora prohlížeče

HTMLUnitDriver

HTML UnitDriver je nejlehčí a nejrychlejší implementační bezhlavý prohlížeč pro WebDriver. Je založen na HtmlUnit. Je známá jako Bezhlavý ovladač prohlížeče. Je to stejné jako Chrome, IE nebo FireFox ovladač, ale nemá GUI, takže na obrazovce není vidět provedení testu.

Vlastnosti ovladače jednotky HTML

  • Podpora protokolů HTTPS a HTTP
  • Podpora HTML odpovědí (klikání na odkazy, odesílání formulářů, procházení modelu DOM dokumentu HTML atd.)
  • Podpora pro soubory cookie
  • Podpora proxy serveru
  • Podpora základní a NTLM autentizace
  • vynikající JavaScénář podpora
  • Podpora metod odeslání GET a POST
  • Schopnost přizpůsobit hlavičky požadavků odesílaných na server
  • Schopnost určit, zda by neúspěšné odpovědi ze serveru měly vyvolat výjimky nebo by měly být vráceny jako stránky příslušného typu

Kroky k použití ovladače HTMLUnit s Selenium

Krok 1) In Eclipse, zkopírujte následující kód. Přidejte do projektu soubory standardní knihovny selenu. Nejsou vyžadovány žádné další soubory jar.

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

Krok 2) Spusťte kód. Uvidíte, že není spuštěn žádný prohlížeč a výsledky se zobrazí v konzole.

Postup použití ovladače HTMLUnit s Selenium

Výhody Html Unit Driver:

  • Protože k testování nepoužívá žádné grafické uživatelské rozhraní, vaše testy poběží na pozadí bez jakéhokoli vizuálního přerušení
  • Ve srovnání se všemi ostatními instancemi je provádění rychlejší
  • Chcete-li spustit testy prostřednictvím ovladače HtmlUnit, můžete také vybrat jiné verze prohlížeče
  • Je nezávislý na platformě a snáze spouští několik testů současně. Ideální pro Testování zatížení.

Omezení:

  • Nemůže emulovat jiné prohlížeče JavaChování skriptu

PhantomJS

PhantomJS je bezhlavý prohlížeč s JavaScript API. Je to optimální řešení pro bezhlavé testování webových stránek, přístup a manipulaci s webovými stránkami a přichází se standardním DOM API.

Abyste mohli používat PhantomJS se Seleniunem, musíte použít GhostDriver. GhostDriver je implementace protokolu Webdriver Wire v jednoduchém JS pro PhantomJS.

Nejnovější verze PhatomJS má integrovaný GhostDriver a není třeba jej instalovat samostatně.

Zde je návod, jak systém funguje -

PhantomJS

Kroky k běhu Selenium s PhatomJS

Krok 1) Potřebujete Eclipse s Selenium instalovány

Krok 2) Stáhněte si PhantomJS zde

Kroky ke spuštění Selenium S PhatomJS

Krok 3) Extrahujte staženou složku do Program Files

Kroky ke spuštění Selenium S PhatomJS

Krok 4) Stáhněte si ovladač PhantomJS z zde. Přidejte sklenici do svého projektu

Kroky ke spuštění Selenium S PhatomJS

Krok 5) Vložte následující kód do 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();			
           }		
}

Krok 6) Spusťte kód. Uvidíte, že se výstup zobrazí v konzole a nespustí se žádný prohlížeč.

POZNÁMKA: Při prvním spuštění se na základě vašeho nastavení může zobrazit bezpečnostní upozornění Windows aby bylo možné spustit PhantomJS. Klikněte na Povolit přístup.

Kroky ke spuštění Selenium S PhatomJS

Mnoho organizací používá Phantom.JS pro různé účely, např.

  • Bezhlavé testování
  • Screen capture
  • Automatizace stránek
  • Sledování sítě
  • K vykreslení snímků obrazovky řídicího panelu pro jejich uživatele
  • Chcete-li spustit testy jednotek na příkazovém řádku
  • Generování příruček pro zaměstnance z HTML do PDF
  • V kombinaci s QUnit pro testovací sadu

Shrnutí

Pro rychlé testování aplikace v různých prohlížečích a bez jakéhokoli vizuálního přerušení, bezhlavý prohlížeč Testování se používá. Díky své rychlosti, přesnosti a snadno přístupným funkcím získávají ovladače HTML jednotky a PhantomJS na popularitě pro bezhlavé testování automatizace prohlížeče. Dodržením několika jednoduchých kroků zjistíte, jak snadno lze tyto nástroje integrovat s jinými nástroji a mohou provádět testovací kód.