HTMLUnitDriver in SeleniumHeadless-Browser-Tutorial
โก Intelligente Zusammenfassung
HtmlUnitDriver ist die schnellste Headless-Implementierung von Selenium WebDriver, wรคhrend PhantomJS, einst ein beliebter, auf GhostDriver basierender Headless-Browser, seit 2018 veraltet ist und mittlerweile durch den Headless-Browser Chrome ersetzt wurde, Firefoxund Dramatiker fรผr moderne Automatisierungs-Workflows.

Ein Headless-Browser ist ein Webbrowser ohne grafische Benutzeroberflรคche. Er kann im Hintergrund ausgefรผhrt werden, ohne dass visuelle Reize sichtbar sind.tracEs bietet eine effiziente und effektive Mรถglichkeit, Webanwendungen zu testen und dabei Zeit und Ressourcen zu sparen. In diesem Artikel erfahren Sie, was ein Headless-Browser ist, wann Headless-Browser-Tests eingesetzt werden und wie sie durchgefรผhrt werden. Selenium HtmlUnitDriver und PhantomJS.
Was ist ein Headless-Browser?
Ein Headless-Browser ist ein Webbrowser ohne grafische BenutzeroberflรคcheDieses Programm verhรคlt sich wie ein normaler Browser, zeigt aber wรคhrend der Ausfรผhrung kein GUI-Fenster an.
Beispiele fรผr Treiber fรผr Browser ohne grafische Benutzeroberflรคche sind:
- HtmlEinheit
- Ghost
- PhantomJS (veraltet)
- ZombieJS
- Watir-Webtreiber
- Kopfloses Chrom
- Headless Firefox
Wann sollten Headless-Browser-Tests verwendet werden?
Im heutigen digitalen Zeitalter werden Webanwendungen so entwickelt, dass sie mit einer Vielzahl von Gerรคten und Plattformen kompatibel sind. Dies stellt Entwickler vor die Herausforderung, die reibungslose Funktion ihrer Anwendungen in unterschiedlichen Umgebungen zu gewรคhrleisten. Headless-Browser-Testing ist hierfรผr eine ideale Lรถsung, da es Entwicklern ermรถglicht, ihre Webanwendungen ohne grafische Benutzeroberflรคche zu validieren. Mithilfe von Headless-Browser-Testing kรถnnen Entwickler komplexe Webanwendungen mit vielen Komponenten und Abhรคngigkeiten schnell abdecken und so den Weg fรผr eine schnellere Entwicklung, weniger Fehler und zufriedenere Nutzer ebnen.
Headless-Browsertests mit Selenium
Selenium ist ein leistungsstarkes Tool fรผr Headless-Browser-Tests, mit dem Entwickler automatisierte Tests ohne sichtbare Benutzeroberflรคche ausfรผhren kรถnnen. Durch die Ausfรผhrung der Tests im Hintergrund Selenium spart Zeit und Ressourcen und hilft gleichzeitigping Identifizieren Sie Probleme, die in einer herkรถmmlichen UI-basierten Testumgebung mรถglicherweise nicht erkennbar sind. Dies umfasst Leistungs- und Layoutprobleme, die erst in einer Headless-Umgebung sichtbar werden. Es ist jedoch wichtig, Headless-Tests mit herkรถmmlichen UI-basierten Tests zu kombinieren, um eine vollstรคndige Testabdeckung zu gewรคhrleisten.
Beliebte Beispiele fรผr Headless-Browser
Es gibt zahlreiche Headless-Browser, jeder mit seinen eigenen Funktionen und Vorteilen, wodurch sie sich fรผr unterschiedliche Anwendungsfรคlle eignen. Wir stellen sie im Folgenden vor.
PhantomJS
Hinweis zur Einstellung der Nutzung: Die aktive Entwicklung von PhantomJS wurde 2018 eingestellt, und das Projekt wird nicht mehr weiterentwickelt. Neue Projekte sollten Headless Chrome oder Headless-Browser bevorzugen. Firefoxden Dramatiker Fรผr moderne, kopflose Automatisierung. Das untenstehende PhantomJS-Beispiel dient nur als Referenz.
PhantomJS ist ein Headless-Browser, der WebKit als Rendering-Engine verwendet und Webstandards wie HTML5, CSS3 und unterstรผtzt. JavaDas Skript kann fรผr Bildschirmaufnahmen und Seitenautomatisierungsaufgaben verwendet werden. Es ist Open Source und mit mehreren Betriebssystemen kompatibel.
Beispiel von Selenium mit 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()
Chrome
Chrome ist der weltweit beliebteste Browser und bietet auch einen Headless-Modus. Er ist plattformรผbergreifend einsetzbar und unterstรผtzt gรคngige Programmiersprachen und Frameworks. Dank der integrierten Debugging-Tools und der umfassenden Dokumentation ist er einfach zu bedienen und ermรถglicht die problemlose Behebung von Problemen, die wรคhrend des Testens auftreten kรถnnen.
Beispiel fรผr Headless Chrome mit 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 ist ein beliebter Webbrowser, der auch als Headless-Browser zu Testzwecken verwendet werden kann. Ein Vorteil der Verwendung von Firefox Als Headless-Browser zeichnet er sich durch seinen geringen Ressourcenverbrauch aus, was ihn zu einer vielseitigen Option fรผr Tests auf verschiedenen Betriebssystemen macht. Hinzu kommen die umfangreiche Dokumentation und der Community-Support. Firefox ist eine ausgezeichnete Wahl fรผr Teams, die mit Headless-Browser-Automatisierung experimentieren.
Beispiel fรผr Headless Firefox und 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()
Vorteile von Headless Browser Testing
- Schnellere Testausfรผhrung
- Kostengรผnstige Tests
- Bessere Testabdeckung
- Flexibilitรคt bei der Durchfรผhrung von Tests
- Einfachere Integration in CI/CD-Pipelines
Nachteile von Headless Browser Testing
- Fehlende grafische Benutzeroberflรคche fรผr die manuelle Inspektion
- Das Debuggen kann ohne Bildschirm schwieriger sein.
- Eingeschrรคnkte browserspezifische Verhaltensabdeckung
HtmlUnitDriver
HtmlUnitDriver ist die schlankste und schnellste Implementierung eines Headless-Browsers fรผr Selenium WebDriver. Er basiert auf HtmlUnit und ist auch als WebDriver bekannt. Headless-Browser-TreiberEs verhรคlt sich wie Chrome, IE oder Firefox Der HtmlUnitDriver ist ein Treiber, der jedoch keine grafische Benutzeroberflรคche besitzt, sodass die Testausfรผhrung nicht auf dem Bildschirm sichtbar ist. Er wird weiterhin gepflegt und รผber die Plattform verbreitet. org.seleniumhq.selenium:htmlunit3-driver Maven-Artefakt.
Funktionen des HtmlUnitDrivers:
- Unterstรผtzung fรผr die Protokolle HTTPS und HTTP
- Unterstรผtzung fรผr HTML-Reaktionen (Klicken auf Links, Absenden von Formularen, Durchlaufen des DOM-Modells des HTML-Dokuments und mehr)
- Unterstรผtzung fรผr Cookies
- Unterstรผtzung fรผr Proxyserver
- Unterstรผtzung fรผr Basis- und NTLM-Authentifizierung
- Solid JavaSkript Unterstรผtzung
- Unterstรผtzung fรผr GET- und POST-รbermittlungsmethoden
- Mรถglichkeit, die an den Server gesendeten Anforderungsheader anzupassen
- Die Mรถglichkeit zu steuern, ob fehlerhafte Antworten vom Server Ausnahmen auslรถsen oder als Seiten des entsprechenden Typs zurรผckgegeben werden sollen.
Schritte zur Verwendung von HtmlUnitDriver mit Selenium
Schritt 1) In EclipseKopieren Sie den folgenden Code. Fรผgen Sie den Standard hinzu. Selenium Dem Projekt werden Bibliotheksdateien hinzugefรผgt. Es werden keine zusรคtzlichen JAR-Dateien benรถtigt.
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 HtmlUnit 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();
}
}
Schritt 2) Fรผhren Sie den Code aus. Sie werden feststellen, dass kein Browser gestartet wird und die Ergebnisse in der Konsole angezeigt werden.
Vorteile des HtmlUnitDrivers
- Da es keine grafische Benutzeroberflรคche verwendet, laufen die Tests im Hintergrund ohne visuelle Unterbrechung.
- Im Vergleich zu anderen Treiberinstanzen ist die Ausfรผhrung schneller.
- Sie kรถnnen beim Ausfรผhren von Tests mit HtmlUnitDriver auch verschiedene Browserversionen emulieren.
-
Es ist plattformunabhรคngig und ermรถglicht die einfache gleichzeitige Ausfรผhrung mehrerer Tests. Es ist ideal fรผr Lastprรผfung.
Einschrรคnkungen:
- Es kann nicht vollstรคndig nachahmen JavaSkriptverhalten jeder realen Browser-Engine
PhantomJS
Hinweise: PhantomJS ist veraltet und wird nicht mehr weiterentwickelt. Verwenden Sie fรผr neue Headless-Projekte stattdessen PhantomJS. Selenium mit Headless Chrome oder FirefoxOder wechseln Sie zu โPlaywrightโ. Der folgende Abschnitt dient nur noch als Referenz.
PhantomJS ist ein Headless-Browser mit einem JavaScript-API. Sie wurde ursprรผnglich fรผr Headless-Website-Tests, den Zugriff auf und die Manipulation von Webseiten verwendet und ist Bestandteil der Standard-DOM-API.
Um PhantomJS zu verwenden SeleniumSie benรถtigen GhostDriver. GhostDriver ist eine Implementierung des WebDriver Wire Protocol in einfachem JavaSkript fรผr PhantomJS.
Die spรคteren Versionen von PhantomJS integriert GhostDriver, also Eine separate Installation ist nicht erforderlich.
So funktioniert das System:
Schritte zum Ausfรผhren Selenium mit PhantomJS
Schritt 1) Du brauchst Eclipse und Selenium installiert.
Schritt 2) Laden Sie PhantomJS herunter werden auf dieser Seite erlรคutert.
Schritt 3) ExtracVerschiebe den heruntergeladenen Ordner in den Ordner โProgrammeโ.
Schritt 4) Laden Sie den PhantomJS-Treiber herunter von werden auf dieser Seite erlรคutertFรผgen Sie die JAR-Datei Ihrem Projekt hinzu.
Schritt 5) Fรผgen Sie den folgenden Code ein in 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();
}
}
Schritt 6) Fรผhren Sie den Code aus. Die Ausgabe wird in der Konsole angezeigt, es wird jedoch kein Browser gestartet.
Anmerkungen: Beim ersten Start kann es je nach Ihren Einstellungen zu einer Sicherheitswarnung kommen. Windows Um PhantomJS auszufรผhren, klicken Sie hier. erlauben Zugang.
Viele Organisationen haben PhantomJS in der Vergangenheit fรผr Aufgaben wie die folgenden verwendet:
- Headless-Test
- Bildschirmaufnahme
- Seitenautomatisierung
- Netzwerkรผberwachung
- Dashboard-Screenshots fรผr ihre Benutzer rendern
- Unit-Tests รผber die Kommandozeile ausfรผhren
- Erstellung von Mitarbeiterhandbรผchern aus HTML in PDF
- Kombination mit QUnit fรผr die Testsuite
Fรผr neue Projekte ersetzen Sie diese PhantomJS-Anwendungsfรคlle durch Headless Chrome, Headless Firefoxoder Playwright, die fortlaufende Sicherheits- und Rendering-Updates erhalten.






