क्रॉस ब्राउज़र परीक्षण का उपयोग करना Selenium वेबड्राइवर

⚡ स्मार्ट सारांश

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

  • 🌐 यह क्यों मायने रखती है: वास्तविक उपयोगकर्ता एक ही पेज को अलग-अलग ब्राउज़रों में खोलते हैं, इसलिए लेआउट, स्क्रिप्ट और स्टाइल को हर जगह सही होना चाहिए ताकि रूपांतरण और पहुंच सुनिश्चित हो सके।
  • 🧪 Selenium वेबड्राइवर सेटअप: ChromeDriver, GeckoDriver, EdgeDriver और SafariDriver को कॉन्फ़िगर करें, फिर एक ही पैरामीटराइज़्ड मेथड के माध्यम से सही इंस्टेंस चुनें।
  • ???? TestNG समानांतर संचालन: parallel=”tests” वाली testing.xml फ़ाइल Chrome को सक्रिय करती है। Firefoxसाथ ही एज सूट भी, जिससे बड़े रिग्रेशन पैक के लिए फीडबैक चक्र कम हो जाते हैं।
  • पकड़े जाने वाले सामान्य दोष: फ़ॉन्ट स्केलिंग, सीएसएस लेआउट शिफ्ट, Javaस्क्रिप्ट पॉलीफ़िल की कमियाँ, HTML5 समर्थन, छवि अभिविन्यास और ऑपरेटिंग सिस्टम-ब्राउज़र की विसंगतियाँ तुरंत सामने आ जाती हैं।
  • क्लाउड लैब्स और एआई: Sauce Labs, BrowserStack और LambdaTest हजारों OS-ब्राउज़र युग्मों तक कवरेज का विस्तार करते हैं, और AI-संचालित दृश्य प्रतिगमन और स्व-उपचार लोकेटर विश्वसनीयता बढ़ाते हैं।

क्रॉस ब्राउज़र टेस्टिंग में Selenium वेबड्राइवर

हमें क्रॉस ब्राउज़र परीक्षण की आवश्यकता क्यों है?

वेब-आधारित एप्लिकेशन नेटिव डेस्कटॉप एप्लिकेशन से बहुत अलग होते हैं। वेब एप्लिकेशन को अंतिम उपयोगकर्ता किसी भी ब्राउज़र में खोल सकता है। उदाहरण के लिए, कुछ लोग इसे खोलना पसंद करते हैं। https://twitter.com in Firefox, जबकि अन्य उपयोग करते हैं Chrome, Safariया, Microsoft Edge.

नीचे दिए गए आरेख में आप देख सकते हैं कि पुराने ब्राउज़रों में, ट्विटर का लॉगिन बॉक्स गोल कोनों को सही ढंग से प्रदर्शित नहीं करता है, जबकि आधुनिक क्रोम कोनों को डिज़ाइन के अनुसार प्रदर्शित करता है।

क्रॉस ब्राउज़र परीक्षण

इसलिए हमें यह सुनिश्चित करना होगा कि वेब एप्लिकेशन सभी लोकप्रिय ब्राउज़रों में अपेक्षा के अनुरूप काम करे, ताकि अधिक से अधिक लोग इसे एक्सेस कर सकें और इसका उपयोग कर सकें।

इस उद्देश्य को क्रॉस ब्राउज़र के माध्यम से पूरा किया जा सकता है। परीक्षण उत्पाद को दायरे में आने वाले प्रत्येक ब्राउज़र पर प्रदर्शित किया जा सकता है।

विभिन्न ब्राउज़रों में आने वाली समस्याओं के कारण

  1. विभिन्न ब्राउज़रों में फ़ॉन्ट आकार का मेल न खाना।
  2. Javaक्रोम (V8) में स्क्रिप्ट इंजन के कार्यान्वयन अलग-अलग हैं। Firefox (स्पाइडरमंकी), सफारी (Javaस्क्रिप्टकोर), और एज।
  3. CSS और HTML सत्यापन में अंतर, जिसमें विक्रेता उपसर्गों को संभालना भी शामिल है।
  4. पुराने ब्राउज़र संस्करणों में HTML5 और ECMAScript सुविधाओं के लिए असंगत या आंशिक समर्थन उपलब्ध है।
  5. पेज अलाइनमेंट, div साइजिंग और फ्लेक्सबॉक्स या ग्रिड रेंडरिंग में बदलाव।
  6. छवि अभिविन्यास और रंग प्रोफ़ाइल में अंतर।
  7. अंतर्निहित ऑपरेटिंग सिस्टम के साथ ब्राउज़र की असंगति, जिसमें मोबाइल वेबव्यू की कुछ कमियां भी शामिल हैं। 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 इस ट्यूटोरियल में डेमो के लिए प्रोजेक्ट फ़ाइलें

अक्सर पूछे जाने वाले प्रश्न

क्रॉस ब्राउज़र टेस्टिंग एक कार्यात्मक और दृश्य परीक्षण तकनीक है जो यह सत्यापित करती है कि एक वेब एप्लिकेशन क्रोम पर समान रूप से काम करता है। Firefox, सफारी, और Microsoft Edge डेस्कटॉप और मोबाइल दोनों पर, विभिन्न ऑपरेटिंग सिस्टम और व्यूपोर्ट आकार सहित।

Selenium वेबड्राइवर एक सिंगल एपीआई प्रदान करता है जो क्रोम को संचालित करता है। Firefoxयह परीक्षण कोड आधिकारिक W3C वेबड्राइवर प्रोटोकॉल के माध्यम से Windows, Edge और Safari ब्राउज़रों पर चलता है। यही परीक्षण कोड किसी भी ब्राउज़र पर चलता है, जिससे यह सुनिश्चित होता है कि यह किसी भी ब्राउज़र पर काम करता है। Selenium वेबड्राइवर ब्राउज़र ऑटोमेशन और क्रॉस ब्राउज़र टेस्टिंग के लिए सर्वमान्य मानक है।

TestNG यह testing.xml फ़ाइल का उपयोग करता है जिसमें parallel=”tests” और thread-count का उपयोग करके प्रत्येक Test टैग को उसके अपने थ्रेड में लॉन्च किया जाता है। पैरामीटराइज़्ड @BeforeTest सेटअप के साथ मिलकर, वही Selenium वेबड्राइवर सूट क्रोम पर चलता है। Firefoxऔर एज को एक साथ संचालित करने से कुल निष्पादन समय में कमी आती है।

Sauce Labs, BrowserStack और LambdaTest होस्टेड सेवाएं प्रदान करते हैं। Selenium ग्रिड जो iOS Safari सहित हजारों OS और ब्राउज़र संयोजनों को प्रदर्शित करते हैं। Android Chrome. रिमोटवेबड्राइवर को ग्रिड एंडपॉइंट पर इंगित करें और उसी कोड को बड़े पैमाने पर चलाने के लिए वांछित क्षमताएं पास करें।

Applitools, Percy और BrowserStack और LambdaTest के विज़ुअल मॉड्यूल में निर्मित AI-संचालित विज़ुअल रिग्रेशन इंजन, स्क्रीनशॉट की तुलना पिक्सेल दर पिक्सेल के बजाय अर्थपूर्ण रूप से करते हैं। वे Chrome और अन्य ब्राउज़रों के बीच अपेक्षित एंटी-एलियासिंग या फ़ॉन्ट रेंडरिंग अंतरों को अनदेखा करते हैं। Firefoxसफारी और एज ब्राउज़र में भी यह वास्तविक लेआउट संबंधी त्रुटियों को पकड़ लेता है, जिससे क्रॉस ब्राउज़र टेस्टिंग पाइपलाइन में गलत पॉजिटिव परिणामों में काफी कमी आती है।

हाँ। हीलेनियम जैसे आधुनिक फ्रेमवर्क, Testim, मैबल, और एआई विशेषताएं Selenium IDE DOM का विश्लेषण करता है और स्थिर XPath या CSS चयनकर्ताओं का सुझाव देता है। जब UI में बदलाव के कारण कोई लोकेटर काम करना बंद कर देता है, तो AI द्वारा जनरेट किए गए चयनकर्ता आस-पास के तत्वों को स्कोर करके और सबसे करीबी मिलान का चयन करके स्वतः ठीक हो जाते हैं, जिससे क्रॉस ब्राउज़र टेस्टिंग सूट कम मैन्युअल रखरखाव के साथ सुचारू रूप से काम करते रहते हैं।

सामान्य दोषों में फॉन्ट और सीएसएस रेंडरिंग में विसंगतियां शामिल हैं। Javaस्क्रिप्ट इंजन में विसंगतियां, HTML5 या ES फीचर सपोर्ट में खराबी, इमेज ओरिएंटेशन संबंधी समस्याएं, पेज अलाइनमेंट की समस्याएं, वेंडर प्रीफिक्स का न होना, और iOS Safari पर OS-विशिष्ट विफलताएं। Android क्रोम।

इस पोस्ट को संक्षेप में इस प्रकार लिखें: