HTMLUnitDriver sisään Selenium: Headless Browser -opetusohjelma
⚡ Älykäs yhteenveto
HtmlUnitDriver on nopein headless-toteutus Selenium WebDriver, kun taas PhantomJS, aikoinaan suosittu GhostDriver-pohjainen headless-selain, on vanhentunut vuodesta 2018 lähtien ja korvattu nyt headless Chromella, headless Firefoxja Playwright nykyaikaisiin automaatiotyönkulkuihin.

Näytönohjainton selain on verkkoselain ilman graafista käyttöliittymää. Se voi toimia taustalla ilman visuaalista näyttöä.tracSe tarjoaa tehokkaan ja toimivan tavan testata verkkosovelluksia samalla säästäen aikaa ja resursseja. Tässä artikkelissa tutkimme, mikä on headless browser, milloin headless browser -testausta kannattaa käyttää ja miten se suoritetaan käyttämällä Selenium HtmlUnitDriver ja PhantomJS.
Mikä on headless-selain?
Headless-selain on verkkoselain ilman graafista käyttöliittymääTämä ohjelma toimii aivan kuten tavallinen selain, mutta se ei näytä graafista käyttöliittymää suorituksen aikana.
Joitakin esimerkkejä headless-selainohjaimista ovat:
- Html-yksikkö
- Aave
- PhantomJS (vanhentunut)
- ZombieJS
- Watir- web-ajuri
- Päätön Chrome
- kannaton Firefox
Milloin käyttää päätöntä selaimen testausta?
Nykypäivän digitaalisella aikakaudella verkkosovellukset rakennetaan yhteensopiviksi monenlaisten laitteiden ja alustojen kanssa. Tämä luo haasteen kehittäjille, joiden on varmistettava, että heidän sovelluksensa toimivat saumattomasti eri ympäristöissä. Headless-selaintestaus on ihanteellinen ratkaisu, koska se antaa kehittäjille mahdollisuuden validoida verkkosovelluksiaan ilman graafista käyttöliittymää. Käyttämällä headless-selaintestausta kehittäjät voivat nopeasti kattaa monimutkaisia verkkosovelluksia, joissa on monia komponentteja ja riippuvuuksia, mikä tasoittaa tietä nopeammalle kehitykselle, vähemmille virheille ja tyytyväisemmille käyttäjille.
Päättömän selaimen testaus Selenium
Selenium on tehokas työkalu selaimen testaukseen ilman pään avaamista, jonka avulla kehittäjät voivat suorittaa automatisoituja testejä ilman näkyvää käyttöliittymää. Suorittamalla testejä taustalla, Selenium säästää aikaa ja resursseja samalla auttaenping tunnistaa ongelmia, jotka eivät välttämättä ole ilmeisiä perinteisessä käyttöliittymäpohjaisessa testausympäristössä. Tämä sisältää suorituskykyyn ja ulkoasuun liittyviä ongelmia, jotka tulevat ilmi vain käyttöliittymättömässä ympäristössä. On kuitenkin tärkeää tasapainottaa käyttöliittymätön testaus perinteisten käyttöliittymäpohjaisten testien kanssa täyden kattavuuden varmistamiseksi.
Suosittuja esimerkkejä päättömistä selaimista
Saatavilla on useita selaimen toimintoja ilman pään asettamista (headless), joilla jokaisella on omat ominaisuutensa ja etunsa, jotka tekevät niistä sopivia erilaisiin käyttötapauksiin. Käsittelemme niitä alla.
PhantomJS
Vanhenemisilmoitus: PhantomJS:n aktiivinen kehitys loppui vuonna 2018, eikä projektia enää ylläpidetä. Uusien projektien tulisi suosia headless Chromea, headlessiä Firefoxtai Näytelmäkirjailija modernia headless-automaatiota varten. Alla oleva PhantomJS-esimerkki on vain viitteellinen.
PhantomJS on selain ilman grafiikkaa, joka käyttää WebKitiä renderöintimoottorinaan ja tukee web-standardeja, kuten HTML5, CSS3 ja ... JavaSkripti. Sitä voidaan käyttää näytön kaappaukseen ja sivujen automatisointitehtäviin. Se on avoimen lähdekoodin ja yhteensopiva useiden käyttöjärjestelmien kanssa.
Esimerkki Selenium jossa Headless PhantomJS sisää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()
kromi
Chrome on planeetan suosituin selain ja tarjoaa myös headless-tilan. Sitä voidaan käyttää monilla alustoilla, ja se tukee suosittuja ohjelmointikieliä ja -kehyksiä. Sen sisäänrakennetut virheenkorjaustyökalut ja laaja dokumentaatio tekevät käytöstä ja testauksen aikana mahdollisesti ilmenevien ongelmien vianmäärityksestä helppoa.
Esimerkki Headless Chromesta 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 on suosittu verkkoselain, jota voidaan käyttää myös selaimena ilman näyttöä testausta varten. Yksi käytön eduista Firefox headless-selaimena sen kevyt koko tekee siitä monipuolisen vaihtoehdon testaukseen eri käyttöjärjestelmissä. Yhdessä laajan dokumentaation ja yhteisön tuen kanssa... Firefox on erinomainen valinta tiimeille, jotka kokeilevat headless-selaimen automaatiota.
Esimerkki päättömästä Firefox 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()
Päättömän selaimen testauksen edut
- Nopeampi testin suorittaminen
- Kustannustehokas testaus
- Parempi testikattavuus
- Joustavuus testien suorittamisessa
- Helpompi integrointi CI/CD-putkistojen kanssa
Päättömän selaimen testauksen haitat
- Näkyvän käyttöliittymän puute manuaalista tarkastusta varten
- Virheenkorjaus voi olla vaikeampaa ilman näyttöä
- Rajoitettu selainkohtainen toimintakattavuus
HTMLUnitDriver
HtmlUnitDriver on kevyin ja nopein toteutus selaimelle, joka ei käytä headless-toimintoa. Selenium WebDriver. Se perustuu HtmlUnit-elementtiin ja tunnetaan myös nimellä Päätön selainohjainSe toimii kuten Chrome, IE tai Firefox ajuri, mutta sillä ei ole graafista käyttöliittymää, joten testin suoritus ei näy näytöllä. HtmlUnitDriver-ajuria ylläpidetään edelleen ja se jaetaan org.seleniumhq.selenium:htmlunit3-driver Maven-artefakti.
HtmlUnitDriverin ominaisuudet:
- Tuki HTTPS- ja HTTP-protokolloille
- Tuki HTML-vastauksille (linkkien napsauttaminen, lomakkeiden lähettäminen, HTML-dokumentin DOM-mallin läpikäyminen ja paljon muuta)
- Tuki evästeille
- Välityspalvelimen tuki
- Perus- ja NTLM-todennuksen tuki
- Vankka JavaKäsikirjoitus tuki
- Tuki GET- ja POST-lähetysmetodeille
- Mahdollisuus mukauttaa palvelimelle lähetettävät pyyntöotsikot
- Mahdollisuus hallita, pitäisikö palvelimen epäonnistuneiden vastausten aiheuttaa poikkeuksia vai palautetaanko ne sopivan tyyppisinä sivuina
HtmlUnitDriverin käyttöohjeet Selenium
Vaihe 1) In Eclipse, kopioi seuraava koodi. Lisää standardi Selenium kirjastotiedostot projektiin. Muita JAR-tiedostoja ei tarvita.
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();
}
}
Vaihe 2) Suorita koodi. Huomaat, ettei selainta käynnistetä ja tulokset näkyvät konsolissa.
HtmlUnitDriverin edut
- Koska se ei käytä graafista käyttöliittymää, testit toimivat taustalla ilman visuaalisia keskeytyksiä
- Verrattuna muihin ajuri-instansseihin, suoritus on nopeampaa
- Voit myös emuloida eri selainversioita, kun suoritat testejä HtmlUnitDriverin kautta.
-
Se on alustariippumaton ja sillä on helppo suorittaa useita testejä samanaikaisesti. Se on ihanteellinen kuormitustestaus.
Rajoitukset:
- Se ei voi täysin jäljitellä JavaJokaisen oikean selainmoottorin skriptien käyttäytyminen
PhantomJS
Muistutus: PhantomJS on vanhentunut eikä sitä enää ylläpidetä. Uusiin funktiottomiin töihin käytä Selenium headless Chromella tai Firefox, tai siirry näytelmäkirjailijaksi. Alla oleva osio on tarkoitettu vain perintöviitteeksi.
PhantomJS on selain ilman näytöltä löytyviä tietoja, JavaScript API. Sitä käytettiin aiemmin funktiotonta verkkosivustojen testausta, verkkosivujen käyttöä ja käsittelyä varten, ja se toimitetaan vakiomuotoisen DOM API:n kanssa.
PhantomJS:n käyttö Selenium, tarvitset GhostDriverin. GhostDriver on WebDriver Wire Protocolin toteutus selkokielellä JavaPhantomJS:n skripti.
PhantomJS:n myöhemmät julkaisut integroitu GhostDriver, niin sitä ei tarvitse asentaa erikseen.
Näin järjestelmä toimii:
Juoksun vaiheet Selenium PhantomJS:n kanssa
Vaihe 1) Tarvitset Eclipse Selenium asennettu.
Vaihe 2) Lataa PhantomJS täältä.
Vaihe 3) ExtracTallenna ladattu kansio Program Files -kansioon.
Vaihe 4) Lataa PhantomJS-ohjain osoitteesta täältäLisää JAR-tiedosto projektiisi.
Vaihe 5) Liitä seuraava koodi sisää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();
}
}
Vaihe 6) Suorita koodi. Näet tulosteen konsolissa eikä selainta käynnisty.
HUOMAUTUS: Ensimmäisellä käyttökerralla saatat asetuksistasi riippuen nähdä suojausvaroituksen osoitteesta Windows salliaksesi PhantomJS:n suorittamisen. Napsauta Sallia pääsy.
Monet organisaatiot ovat historiallisesti käyttäneet PhantomJS:ää tehtäviin, kuten:
- Päätön testaus
- Kuvakaappaus
- Sivun automatisointi
- Verkonvalvonta
- Kojelaudan kuvakaappausten renderöinti käyttäjilleen
- Yksikkötestien suorittaminen komentorivillä
- Työntekijöiden käsikirjojen luominen HTML-tiedostosta PDF-muotoon
- Yhdistäminen QUnitin kanssa testisarjaa varten
Uusia töitä varten korvaa nämä PhantomJS:n käyttötapaukset Chromella, joka ei käytä headless-toimintoa. Firefoxtai Playwright, jotka saavat jatkuvia tietoturva- ja renderöintipäivityksiä.






