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.






