क्रॉस ब्राउज़र परीक्षण का उपयोग करना Selenium वेबड्राइवर
⚡ स्मार्ट सारांश
क्रॉस ब्राउज़र परीक्षण का उपयोग करना Selenium वेबड्राइवर यह सत्यापित करता है कि कोई वेब एप्लिकेशन क्रोम पर सुसंगत रूप से कार्य करता है। Firefoxयह ट्यूटोरियल दिखाता है कि इन ऐप्स को Safari और Edge में कैसे जोड़ा जाए। Selenium वेबड्राइवर के साथ TestNG समानांतर सत्र शुरू करने, रेंडरिंग को मान्य करने और आधुनिक डेस्कटॉप और मोबाइल ब्राउज़रों में कवरेज बढ़ाने के लिए।

हमें क्रॉस ब्राउज़र परीक्षण की आवश्यकता क्यों है?
वेब-आधारित एप्लिकेशन नेटिव डेस्कटॉप एप्लिकेशन से बहुत अलग होते हैं। वेब एप्लिकेशन को अंतिम उपयोगकर्ता किसी भी ब्राउज़र में खोल सकता है। उदाहरण के लिए, कुछ लोग इसे खोलना पसंद करते हैं। https://twitter.com in Firefox, जबकि अन्य उपयोग करते हैं Chrome, Safariया, Microsoft Edge.
नीचे दिए गए आरेख में आप देख सकते हैं कि पुराने ब्राउज़रों में, ट्विटर का लॉगिन बॉक्स गोल कोनों को सही ढंग से प्रदर्शित नहीं करता है, जबकि आधुनिक क्रोम कोनों को डिज़ाइन के अनुसार प्रदर्शित करता है।
इसलिए हमें यह सुनिश्चित करना होगा कि वेब एप्लिकेशन सभी लोकप्रिय ब्राउज़रों में अपेक्षा के अनुरूप काम करे, ताकि अधिक से अधिक लोग इसे एक्सेस कर सकें और इसका उपयोग कर सकें।
इस उद्देश्य को क्रॉस ब्राउज़र के माध्यम से पूरा किया जा सकता है। परीक्षण उत्पाद को दायरे में आने वाले प्रत्येक ब्राउज़र पर प्रदर्शित किया जा सकता है।
विभिन्न ब्राउज़रों में आने वाली समस्याओं के कारण
- विभिन्न ब्राउज़रों में फ़ॉन्ट आकार का मेल न खाना।
- Javaक्रोम (V8) में स्क्रिप्ट इंजन के कार्यान्वयन अलग-अलग हैं। Firefox (स्पाइडरमंकी), सफारी (Javaस्क्रिप्टकोर), और एज।
- CSS और HTML सत्यापन में अंतर, जिसमें विक्रेता उपसर्गों को संभालना भी शामिल है।
- पुराने ब्राउज़र संस्करणों में HTML5 और ECMAScript सुविधाओं के लिए असंगत या आंशिक समर्थन उपलब्ध है।
- पेज अलाइनमेंट, div साइजिंग और फ्लेक्सबॉक्स या ग्रिड रेंडरिंग में बदलाव।
- छवि अभिविन्यास और रंग प्रोफ़ाइल में अंतर।
- अंतर्निहित ऑपरेटिंग सिस्टम के साथ ब्राउज़र की असंगति, जिसमें मोबाइल वेबव्यू की कुछ कमियां भी शामिल हैं। Android और आईओएस।
क्रॉस ब्राउज़र परीक्षण कैसे करें
अगर हम उपयोग कर रहे हैं Selenium वेबड्राइवर की मदद से हम क्रोम के खिलाफ टेस्ट केस को स्वचालित कर सकते हैं। Firefox, Microsoft Edgeऔर सफारी ब्राउज़र।
एक ही मशीन पर एक ही समय में विभिन्न ब्राउज़रों के साथ टेस्ट केस चलाने के लिए, हम एकीकृत कर सकते हैं TestNG ढांचे के साथ Selenium वेबड्राइवर। व्यापक ऑपरेटिंग सिस्टम और संस्करण कवरेज के लिए, इसी सूट को रिमोट वेबड्राइवर एंडपॉइंट के माध्यम से सॉस लैब्स, ब्राउज़रस्टैक या लैम्डाटेस्ट जैसे क्लाउड ग्रिड पर निर्देशित किया जा सकता है।
आपकी testing.xml फ़ाइल इस प्रकार दिखेगी:
यह testing.xml मैप करेगा परीक्षण का मामला जो इस तरह दिखता है:
क्योंकि testing.xml में कई Test टैग हैं ('ChromeTest', 'Firefox(जैसे 'Test', 'EdgeTest')) यह टेस्ट केस प्रत्येक ब्राउज़र के लिए एक बार निष्पादित होगा।
पहले टेस्ट 'ChromeTest' में 'browser' पैरामीटर का मान 'chrome' होगा, जिससे ChromeDriver निष्पादित होगा। यह टेस्ट केस Chrome ब्राउज़र पर चलेगा।
दूसरा टेस्ट 'Firefoxटेस्ट' पैरामीटर 'ब्राउज़र' का मान ' के रूप में पास करेगाFirefox', इसलिए Firefoxड्राइवर निष्पादित किया जाएगा। यह टेस्ट केस इस पर चलेगा। Firefox ब्राउज़र। एज या सफारी टेस्ट जोड़ने के लिए भी यही तरीका अपनाया जाता है।
Guru99CrossBrowserScript.java
पूर्ण Code:
package parallelTest; import java.util.concurrent.TimeUnit; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.edge.EdgeDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.safari.SafariDriver; import org.testng.annotations.BeforeTest; import org.testng.annotations.Parameters; import org.testng.annotations.Test; public class CrossBrowserScript { WebDriver driver; /** * This function will execute before each Test tag in testng.xml * @param browser * @throws Exception */ @BeforeTest @Parameters("browser") public void setup(String browser) throws Exception{ //Check if parameter passed from TestNG is 'firefox' if(browser.equalsIgnoreCase("firefox")){ //create firefox instance System.setProperty("webdriver.gecko.driver", ".\\geckodriver.exe"); driver = new FirefoxDriver(); } //Check if parameter passed as 'chrome' else if(browser.equalsIgnoreCase("chrome")){ //set path to chromedriver.exe System.setProperty("webdriver.chrome.driver",".\\chromedriver.exe"); //create chrome instance driver = new ChromeDriver(); } //Check if parameter passed as 'Edge' else if(browser.equalsIgnoreCase("Edge")){ //set path to msedgedriver.exe System.setProperty("webdriver.edge.driver",".\\msedgedriver.exe"); //create Edge instance driver = new EdgeDriver(); } //Check if parameter passed as 'Safari' else if(browser.equalsIgnoreCase("Safari")){ //SafariDriver ships with macOS, no driver path needed driver = new SafariDriver(); } else{ //If no browser passed throw exception throw new Exception("Browser is not correct"); } driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); } @Test public void testParameterWithXML() throws InterruptedException{ driver.get("https://demo.guru99.com/V4/"); //Find user name WebElement userName = driver.findElement(By.name("uid")); //Fill user name userName.sendKeys("guru99"); //Find password WebElement password = driver.findElement(By.name("password")); //Fill password password.sendKeys("guru99"); } }
परीक्षण.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite name="TestSuite" thread-count="3" parallel="tests" > <test name="ChromeTest"> <parameter name="browser" value="Chrome" /> <classes> <class name="parallelTest.CrossBrowserScript"> </class> </classes> </test> <test name="FirefoxTest"> <parameter name="browser" value="Firefox" /> <classes> <class name="parallelTest.CrossBrowserScript"> </class> </classes> </test> <test name="EdgeTest"> <parameter name="browser" value="Edge" /> <classes> <class name="parallelTest.CrossBrowserScript"> </class> </classes> </test> </suite>
नोट: टेस्ट चलाने के लिए, पर राइट-क्लिक करें परीक्षण.xmlरन ऐज़ चुनें और क्लिक करें। TestNG सुइट।
क्लाउड ब्राउज़र ग्रिड के साथ स्केलिंग
रनिंग Selenium वेबड्राइवर स्थानीय रूप से दो या तीन ब्राउज़रों को कवर करता है, लेकिन वास्तविक उपयोगकर्ता सैकड़ों ऑपरेटिंग सिस्टम और ब्राउज़र संयोजनों से साइटों तक पहुँच प्राप्त करते हैं। क्लाउड लैब जैसे कि सॉस लैब्स, BrowserStack, तथा LambdaTest एक रिमोट वेबड्राइवर एंडपॉइंट को उजागर करें। उसी को इंगित करें Selenium ग्रिड पर किए गए परीक्षण ब्राउज़र, संस्करण, ऑपरेटिंग सिस्टम और रिज़ॉल्यूशन के लिए वांछित क्षमताओं को पूरा करते हैं, और यह सूट स्थानीय ड्राइवरों को प्रबंधित किए बिना क्षैतिज रूप से स्केल करता है।
आधुनिक ग्रिड एआई-सहायता प्राप्त सुविधाओं जैसे कि विज़ुअल रिग्रेशन डिफिंग, सेल्फ-हीलिंग एलिमेंट लोकेटर और फ्लेकीनेस स्कोरिंग को भी सामने लाते हैं, जो लंबे समय तक चलने वाले क्रॉस ब्राउज़र टेस्टिंग सूट पर रखरखाव के ओवरहेड को कम करते हैं।
नोट: दिए गए प्रोग्राम को बनाया गया और उस पर परीक्षण किया गया। Selenium 4, क्रोम, Firefox, तथा Microsoft Edgeयदि प्रोग्राम में कोई त्रुटि आती है, तो कृपया ड्राइवर बाइनरी को अपने इंस्टॉल किए गए ब्राउज़र संस्करण से मेल खाने के लिए अपडेट करें, या उपयोग करें Selenium एक मैनेजर जो ड्राइवरों की समस्या को स्वचालित रूप से हल करता है।
डाउनलोड Selenium इस ट्यूटोरियल में डेमो के लिए प्रोजेक्ट फ़ाइलें




