HTMLUnitDriver में Seleniumहेडलेस ब्राउज़र ट्यूटोरियल
⚡ स्मार्ट सारांश
HtmlUnitDriver सबसे तेज़ हेडलेस कार्यान्वयन है Selenium वेबड्राइवर, जबकि फैंटमजेएस, जो कभी एक लोकप्रिय घोस्टड्राइवर-आधारित हेडलेस ब्राउज़र था, 2018 से अप्रचलित हो चुका है और अब हेडलेस क्रोम द्वारा प्रतिस्थापित किया जा चुका है। Firefoxऔर आधुनिक स्वचालन वर्कफ़्लो के लिए नाटककार।

हेडलेस ब्राउज़र एक ऐसा वेब ब्राउज़र है जिसमें ग्राफ़िकल यूजर इंटरफेस नहीं होता है। यह बिना किसी दृश्य व्यवधान के पृष्ठभूमि में चल सकता है।tracयह समय और संसाधनों की बचत करते हुए वेब एप्लिकेशन का परीक्षण करने का एक कुशल और प्रभावी तरीका प्रदान करता है। इस लेख में, हम जानेंगे कि हेडलेस ब्राउज़र क्या है, हेडलेस ब्राउज़र परीक्षण का उपयोग कब करना चाहिए और इसे कैसे किया जा सकता है। Selenium HtmlUnitDriver और PhantomJS।
हेडलेस ब्राउज़र क्या है?
हेडलेस ब्राउज़र एक वेब ब्राउज़र है बिना ग्राफिकल यूजर इंटरफेस केयह प्रोग्राम एक सामान्य ब्राउज़र की तरह व्यवहार करता है, लेकिन निष्पादन के दौरान यह कोई जीयूआई विंडो प्रदर्शित नहीं करता है।
हेडलेस ब्राउज़र ड्राइवरों के कुछ उदाहरणों में शामिल हैं:
- एचटीएमएलयूनिट
- भूत
- फैंटमजेएस (अप्रचलित)
- ज़ोंबीजेएस
- Watir-वेबड्राइवर
- हेडलेस क्रोम
- नेतृत्वहीन Firefox
हेडलेस ब्राउज़र परीक्षण का उपयोग कब करें?
आज के डिजिटल युग में, वेब एप्लिकेशन विभिन्न प्रकार के उपकरणों और प्लेटफार्मों के साथ संगत होने के लिए बनाए जाते हैं। इससे डेवलपर्स के सामने एक चुनौती खड़ी हो जाती है, जिन्हें यह सुनिश्चित करना होता है कि उनके एप्लिकेशन अलग-अलग वातावरणों में निर्बाध रूप से काम करें। हेडलेस ब्राउज़र टेस्टिंग एक आदर्श समाधान है क्योंकि यह डेवलपर्स को ग्राफिक यूजर इंटरफेस के बिना अपने वेब एप्लिकेशन को मान्य करने की सुविधा देता है। हेडलेस ब्राउज़र टेस्टिंग का उपयोग करके, डेवलपर्स कई घटकों और निर्भरताओं वाले जटिल वेब एप्लिकेशन को जल्दी से जांच सकते हैं, जिससे विकास की गति तेज होती है, बग कम होते हैं और उपयोगकर्ता अधिक संतुष्ट होते हैं।
हेडलेस ब्राउज़र परीक्षण Selenium
Selenium यह हेडलेस ब्राउज़र टेस्टिंग के लिए एक शक्तिशाली टूल है, जो डेवलपर्स को बिना किसी दृश्य यूजर इंटरफेस के स्वचालित परीक्षण चलाने की अनुमति देता है। बैकग्राउंड में परीक्षण चलाकर, Selenium समय और संसाधनों की बचत होती है और साथ ही मदद भी मिलती है।ping उन समस्याओं की पहचान करें जो पारंपरिक यूआई-आधारित परीक्षण वातावरण में स्पष्ट नहीं हो सकती हैं। इसमें प्रदर्शन और लेआउट संबंधी समस्याएं शामिल हैं जो केवल हेडलेस सेटिंग में ही सामने आती हैं। हालांकि, पूर्ण कवरेज सुनिश्चित करने के लिए हेडलेस परीक्षण और पारंपरिक यूआई-आधारित परीक्षणों के बीच संतुलन बनाए रखना महत्वपूर्ण है।
हेडलेस ब्राउज़र के लोकप्रिय उदाहरण
कई हेडलेस ब्राउज़र उपलब्ध हैं, जिनमें से प्रत्येक की अपनी विशेषताएं और लाभ हैं, जो उन्हें विभिन्न उपयोगों के लिए उपयुक्त बनाते हैं। हम नीचे इन पर चर्चा करेंगे।
फैंटमजस
अप्रचलन सूचना: PhantomJS का सक्रिय विकास 2018 में बंद हो गया था, और अब इस प्रोजेक्ट का रखरखाव नहीं किया जाता है। नए प्रोजेक्ट्स को हेडलेस क्रोम को प्राथमिकता देनी चाहिए। Firefoxया, नाटककार आधुनिक हेडलेस ऑटोमेशन के लिए। नीचे दिया गया फैंटमजेएस उदाहरण केवल संदर्भ के लिए है।
PhantomJS एक हेडलेस ब्राउज़र है जो अपने रेंडरिंग इंजन के रूप में WebKit का उपयोग करता है और HTML5, CSS3 और जैसे वेब मानकों का समर्थन करता है। Javaयह स्क्रिप्ट स्क्रीन कैप्चर और पेज ऑटोमेशन कार्यों के लिए उपयोग की जा सकती है। यह ओपन-सोर्स है और कई ऑपरेटिंग सिस्टम के साथ संगत है।
इसका उदाहरण Selenium हेडलेस फैंटमजेएस के साथ 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
क्रोम दुनिया का सबसे लोकप्रिय ब्राउज़र है और इसमें हेडलेस मोड भी उपलब्ध है। इसे कई प्लेटफॉर्म पर इस्तेमाल किया जा सकता है और यह लोकप्रिय प्रोग्रामिंग भाषाओं और फ्रेमवर्क को सपोर्ट करता है। इसके अंतर्निहित डिबगिंग टूल और विस्तृत डॉक्यूमेंटेशन इसे इस्तेमाल करना और टेस्टिंग के दौरान आने वाली किसी भी समस्या का निवारण करना आसान बनाते हैं।
हेडलेस क्रोम का उदाहरण 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 यह एक लोकप्रिय वेब ब्राउज़र है जिसे परीक्षण के लिए हेडलेस ब्राउज़र के रूप में भी इस्तेमाल किया जा सकता है। इसका एक लाभ यह है कि इसे हेडलेस ब्राउज़र के रूप में भी इस्तेमाल किया जा सकता है। Firefox हेडलेस ब्राउज़र होने की सबसे बड़ी खूबी इसका हल्का आकार है, जो इसे विभिन्न ऑपरेटिंग सिस्टम पर परीक्षण के लिए एक बहुमुखी विकल्प बनाता है। इसके व्यापक दस्तावेज़ीकरण और सामुदायिक समर्थन के साथ मिलकर, Firefox हेडलेस ब्राउज़र ऑटोमेशन के साथ प्रयोग करने वाली टीमों के लिए यह एक उत्कृष्ट विकल्प है।
हेडलेस का उदाहरण 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()
हेडलेस ब्राउज़र परीक्षण के लाभ
- तेज़ परीक्षण निष्पादन
- लागत प्रभावी परीक्षण
- बेहतर परीक्षण कवरेज
- परीक्षण चलाने में लचीलापन
- CI/CD पाइपलाइनों के साथ आसान एकीकरण
हेडलेस ब्राउज़र परीक्षण के नुकसान
- मैनुअल निरीक्षण के लिए स्पष्ट ग्राफिकल यूजर इंटरफेस का अभाव
- स्क्रीन के बिना डिबगिंग करना कठिन हो सकता है।
- सीमित ब्राउज़र-विशिष्ट व्यवहार कवरेज
एचटीएमएलयूनिटड्राइवर
HtmlUnitDriver हेडलेस ब्राउज़र का सबसे हल्का और सबसे तेज़ कार्यान्वयन है। Selenium वेबड्राइवर। यह एचटीएमएलयूनिट पर आधारित है और इसे वेबड्राइवर के नाम से भी जाना जाता है। हेडलेस ब्राउज़र ड्राइवरयह क्रोम, आईई या की तरह व्यवहार करता है। Firefox HtmlUnitDriver एक ड्राइवर है, लेकिन इसमें GUI नहीं है, इसलिए परीक्षण निष्पादन स्क्रीन पर दिखाई नहीं देता है। HtmlUnitDriver अभी भी रखरखाव में है और इसे वितरित किया जाता है। org.seleniumhq.selenium:htmlunit3-driver मेवन आर्टिफैक्ट।
HtmlUnitDriver की विशेषताएं:
- HTTPS और HTTP प्रोटोकॉल के लिए समर्थन
- एचटीएमएल प्रतिक्रियाओं के लिए समर्थन (लिंक पर क्लिक करना, फॉर्म जमा करना, एचटीएमएल दस्तावेज़ के डीओएम मॉडल को देखना, और बहुत कुछ)
- कुकीज़ के लिए समर्थन
- प्रॉक्सी सर्वर समर्थन
- बुनियादी और NTLM प्रमाणीकरण के लिए समर्थन
- ठोस Javaलिपि समर्थन
- GET और POST सबमिट विधियों के लिए समर्थन
- सर्वर को भेजे जाने वाले अनुरोध हेडर को अनुकूलित करने की क्षमता
- सर्वर से प्राप्त असफल प्रतिक्रियाओं को नियंत्रित करने की क्षमता, यह निर्धारित करने की क्षमता कि क्या उन्हें अपवाद उत्पन्न करना चाहिए या उचित प्रकार के पृष्ठों के रूप में वापस किया जाना चाहिए।
HtmlUnitDriver का उपयोग करने के चरण Selenium
चरण 1) In Eclipseनिम्न कोड को कॉपी करें। मानक जोड़ें Selenium लाइब्रेरी फ़ाइलों को प्रोजेक्ट में जोड़ें। किसी अतिरिक्त 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 HtmlUnit driver
WebDriver driver = new HtmlUnitDriver();
// Navigate to गूगल
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();
}
}
चरण 2) कोड चलाएँ. आप देखेंगे कि कोई ब्राउज़र लॉन्च नहीं होता है और परिणाम कंसोल में प्रदर्शित होते हैं।
HtmlUnitDriver के लाभ
- क्योंकि इसमें किसी भी प्रकार के ग्राफिकल यूजर इंटरफेस का उपयोग नहीं होता है, इसलिए परीक्षण बिना किसी दृश्य रुकावट के पृष्ठभूमि में चलते रहते हैं।
- अन्य ड्राइवर इंस्टेंस की तुलना में, निष्पादन तेज़ है।
- HtmlUnitDriver के माध्यम से परीक्षण चलाते समय आप विभिन्न ब्राउज़र संस्करणों का अनुकरण भी कर सकते हैं।
-
यह प्लेटफ़ॉर्म-स्वतंत्र है और कई परीक्षणों को एक साथ चलाना आसान है। यह इसके लिए आदर्श है। लोड परीक्षण.
सीमाएँ:
- यह पूरी तरह से अनुकरण नहीं कर सकता Javaप्रत्येक वास्तविक ब्राउज़र इंजन के स्क्रिप्ट व्यवहार
फैंटमजस
अनुस्मारक: PhantomJS अप्रचलित हो चुका है और अब इसका रखरखाव नहीं किया जाता है। नए हेडलेस कार्यों के लिए, इसका उपयोग करें। Selenium हेडलेस क्रोम के साथ या Firefoxया फिर प्लेराइट पर जाएँ। नीचे दिया गया भाग केवल पूर्व संदर्भ के लिए है।
PhantomJS एक हेडलेस ब्राउज़र है जिसमें एक Javaस्क्रिप्ट एपीआई। इसका उपयोग ऐतिहासिक रूप से हेडलेस वेबसाइट परीक्षण, वेबपेजों तक पहुंच और उनमें हेरफेर करने के लिए किया जाता था, और यह मानक डीओएम एपीआई के साथ आता है।
PhantomJS का उपयोग करने के लिए Seleniumआपको GhostDriver की आवश्यकता है। घोस्टड्राइवर यह वेबड्राइवर वायर प्रोटोकॉल का एक सरल कार्यान्वयन है। Javaफैंटमजेएस के लिए स्क्रिप्ट।
फैंटमजेएस के बाद के संस्करण एकीकृत घोस्टड्राइवर, इसलिए इसे अलग से इंस्टॉल करने की कोई आवश्यकता नहीं है।
सिस्टम इस प्रकार काम करता है:
चलाने के चरण Selenium फैंटमजेएस के साथ
चरण 1) आप की जरूरत है Eclipse साथ में Selenium स्थापित.
चरण 2) PhantomJS डाउनलोड करें यहाँ उत्पन्न करें.
चरण 3) Extracडाउनलोड किए गए फ़ोल्डर को प्रोग्राम फ़ाइल्स में पेस्ट करें।
चरण 4) PhantomJS ड्राइवर को यहां से डाउनलोड करें यहाँ उत्पन्न करेंअपने प्रोजेक्ट में JAR फ़ाइल जोड़ें।
चरण 5) निम्नलिखित कोड को पेस्ट करें 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();
}
}
चरण 6) कोड चलाएँ। आपको कंसोल में आउटपुट दिखाई देगा और कोई ब्राउज़र लॉन्च नहीं होगा।
नोट: पहली बार चलाने पर, आपकी सेटिंग्स के आधार पर, आपको एक सुरक्षा चेतावनी दिखाई दे सकती है। Windows PhantomJS को चलाने की अनुमति देने के लिए। क्लिक करें उपयोग की अनुमति.
कई संगठनों ने ऐतिहासिक रूप से फैंटमजेएस का उपयोग निम्नलिखित कार्यों के लिए किया है:
- हेडलेस परीक्षण
- स्क्रीन कैप्चर
- पेज स्वचालन
- नेटवर्क निगरानी
- अपने उपयोगकर्ताओं के लिए डैशबोर्ड स्क्रीनशॉट प्रदर्शित करना
- कमांड लाइन पर यूनिट परीक्षण चलाना
- एचटीएमएल से पीडीएफ में कर्मचारी हैंडबुक तैयार करना
- टेस्ट सूट के लिए QUnit के साथ संयोजन
नए काम के लिए, इन PhantomJS उपयोग मामलों को हेडलेस क्रोम, हेडलेस से बदलें Firefoxया प्लेराइटर, जिन्हें निरंतर सुरक्षा और प्रस्तुतिकरण संबंधी अपडेट प्राप्त होते रहते हैं।






