HTMLUnitDriver in Selenium
En huvudlös webbläsare är en webbläsare utan ett grafiskt användargränssnitt. Den kan köras i bakgrunden utan visuella distraktioner. Det erbjuder ett effektivt och effektivt sätt att testa webbapplikationer samtidigt som du sparar tid och resurser. I den här handledningen kommer vi att dyka in i vad en huvudlös webbläsare är, när man ska använda huvudlös webbläsartestning och hur man utför det med Selenium.
Vad är Headless Browser?
En huvudlös webbläsare är en webbläsare utan ett grafiskt användargränssnitt. Detta program kommer att bete sig precis som en webbläsare men kommer inte att visa något GUI.
Några av exemplen på Headless Drivers inkluderar
- HtmlUnit
- Spöke
- PhantomJS
- ZombieJS
- Watir-webbdrivrutin
När ska man använda Headless Browser Testing?
I dagens digitala tidsålder utvecklas webbapplikationer för att vara kompatibla med ett brett utbud av enheter och plattformar. Detta innebär ofta en utmaning för webbutvecklare som behöver se till att deras applikationer fungerar sömlöst över dessa plattformar. Headless webbläsartestning är en idealisk lösning för detta problem eftersom det tillåter utvecklare att testa sina webbapplikationer utan behov av ett grafiskt användargränssnitt. Genom att använda huvudlös webbläsartestning kan utvecklare enkelt testa komplexa webbapplikationer med flera komponenter och beroenden, vilket banar väg för snabbare utveckling, felfri kod och nöjda användare.
Huvudlös webbläsartestning med Selenium
Selenium är ett kraftfullt verktyg för huvudlös webbläsartestning, vilket gör att utvecklare kan köra automatiserade tester utan behov av ett synligt användargränssnitt. Genom att köra tester i bakgrunden, Selenium kan spara tid och resurser samtidigt som det hjälper till att identifiera problem som kanske inte är uppenbara i en traditionell UI-baserad testmiljö. Detta inkluderar prestandarelaterade problem och layoutproblem som kanske bara blir uppenbara i en huvudlös miljö. Det är dock viktigt att komma ihåg begränsningarna med huvudlösa tester och balansera det med traditionella UI-baserade metoder för att säkerställa omfattande testtäckning.
Populära exempel på huvudlösa webbläsare
Det finns många huvudlösa webbläsare tillgängliga var och en med sina egna unika funktioner och fördelar, vilket gör dem lämpliga för olika användningsfall. Vi diskuterar dem nedan: -
PhantomJS
PhantomJS är en huvudlös webbläsare som använder WebKit som sin renderingsmotor och stöder olika webbstandarder som HTML5, CSS3 och JavaManus. Den kan användas för skärmdumpning och sidautomatiseringsuppgifter. Den är öppen källkod och kompatibel med flera operativsystem.
Exempel på Selenium med Headless PhantomJS in 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 är den mest populära webbläsaren på planeten och erbjuder också en huvudlös funktion. Den kan användas på flera plattformar och stöder programmeringsspråk och ramverk. Dess inbyggda felsökningsverktyg och omfattande dokumentation gör det enkelt att använda och felsöka eventuella problem som kan uppstå under testning.
Exempel 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 är en populär webbläsare som även kan användas som en huvudlös webbläsare för teständamål. En av fördelarna med att använda Firefox som en huvudlös webbläsare är dess lätta natur, vilket gör den till ett mångsidigt alternativ för att testa på olika operativsystem. Dessutom, med dess omfattande dokumentation och gemenskapsstöd, Firefox är ett utmärkt val för dem som vill experimentera med huvudlös webbläsarteknik.
Exempel 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()
Fördelar med Headless Browser Testing
- Snabbare testkörning
- Kostnadseffektiv testning
- Bättre testtäckning
- Flexibilitet i löpande tester
- Integration med CI/CD pipelines
Nackdelar med Headless Browser Testing
- Brist på GUI
- Svårigheter att felsöka
- Begränsat webbläsarstöd
HTMLUnitDriver
HTML UnitDriver är den lättaste och snabbaste implementeringen huvudlösa webbläsaren för WebDriver. Den är baserad på HtmlUnit. Det är känt som Drivrutin för huvudlös webbläsare. Det är samma som Chrome, IE eller FireFox drivrutin, men den har inte GUI så man kan inte se testkörningen på skärmen.
Funktioner i HTML-enhetsdrivrutinen
- Stöd för HTTPS- och HTTP-protokollen
- Stöd för HTML-svar (klicka på länkar, skicka in formulär, gå igenom HTML-dokumentets DOM-modell etc.)
- Stöd för cookies
- Stöd för proxyserver
- Stöd för grundläggande och NTLM-autentisering
- Utmärkt JavaScript stödja
- Stöd för inlämningsmetoderna GET och POST
- Möjlighet att anpassa förfrågningshuvudena som skickas till servern
- Möjlighet att avgöra om felaktiga svar från servern ska ge undantag eller ska returneras som sidor av lämplig typ
Steg för att använda HTMLUnit-drivrutinen med Selenium
Steg 1) In Eclipse, kopiera följande kod. Lägg till selenbibliotekets standardfiler till projektet. Inga ytterligare jar-filer krävs.
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(); } }
Steg 2) Kör koden. Du kommer att observera att ingen webbläsare har startat och resultaten visas i konsolen.
Fördelar med HTML-enhetsdrivrutin:
- Eftersom det inte använder något GUI för att testa, kommer dina tester att köras i bakgrunden utan några visuella avbrott
- Jämfört med alla andra instanser är exekveringen snabbare
- För att köra dina tester genom HtmlUnit-drivrutinen kan du också välja andra webbläsarversioner
-
Det är plattformsoberoende och lättare att köra flera tester samtidigt. Idealisk för Lasttestning.
Begränsningar:
- Den kan inte efterlikna andra webbläsare JavaSkriptbeteende
PhantomJS
PhantomJS är en huvudlös webbläsare med JavaScript API. Det är en optimal lösning för Headless Website Testing, tillgång till och manipulera webbsidor och kommer med standard DOM API.
För att kunna använda PhantomJS med Seleniun måste man använda GhostDriver. GhostDriver är en implementering av Webdriver Wire-protokollet i enkel JS för PhantomJS.
Den senaste versionen av PhatomJS har integrerade GhostDriver och det finns inget behov av att installera den separat.
Så här fungerar systemet-
Steg att springa Selenium med PhatomJS
Steg 1) Du behöver Eclipse med Selenium installerad
Steg 2) Ladda ner PhantomJS här.
Steg 3) Extrahera den nedladdade mappen till Program Files
Steg 4) Ladda ner PhantomJS-drivrutinen från här.. Lägg till burken till ditt projekt
Steg 5) Klistra in följande kod i 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(); } }
Steg 6) Kör koden. Du kommer att se utdata visas i konsolen och ingen webbläsare startas.
ANMÄRKNINGAR: Vid första körningen, baserat på dina inställningar, kan du få en säkerhetsvarning från Windows för att tillåta att köra PhantomJS. Klicka på Tillåt åtkomst.
Många organisationer använder Phantom.JS för olika ändamål, t.ex.
- Huvudlös testning
- Screen Capture
- Sidautomatisering
- Nätverksövervakning
- För att göra skärmdumpar på instrumentpanelen för sina användare
- För att köra enhetstester på kommandoraden
- För att skapa personalhandböcker från HTML till PDF
- Kombinerat med QUnit för testsviten
Sammanfattning
För att testa applikationen snabbt i olika webbläsare och utan visuella avbrott, huvudlös webbläsare Testning används. På grund av dess snabbhet, noggrannhet och lättillgängliga funktioner, blir HTML-enhetsdrivrutinen och PhantomJS allt populärare för huvudlösa webbläsarautomationstestning. Genom att följa några enkla steg får du veta hur lätt dessa verktyg kan integreras med andra verktyg och kan exekvera testkoden.