प्रॉक्सी प्रमाणीकरण को कैसे संभालें Selenium वेबड्राइवर

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

प्रॉक्सी प्रमाणीकरण में Selenium वेबड्राइवर क्रेडेंशियल पॉपअप को हैंडल करता है जो तब दिखाई देता है जब कोई ब्राउज़र सुरक्षित प्रॉक्सी सर्वर के माध्यम से कनेक्ट होता है। Selenium यदि नेटिव डायलॉग को सीधे संचालित नहीं किया जा सकता है, तो दो तरीके हैं जिनमें ऑटोइट टूल और बिल्ट-इन अलर्ट का उपयोग किया जाता है।

  • प्रॉक्सी भूमिका: प्रॉक्सी एक मध्यस्थ है जो गोपनीयता, सुरक्षा और सामग्री फ़िल्टरिंग की सुविधा प्रदान करता है।
  • 🔀 SOCKS बनाम HTTP: SOCKS डेटा की व्याख्या नहीं करता; एक HTTP प्रॉक्सी केवल HTTP अनुरोधों को पढ़ता है।
  • 🪟 नेटिव पॉपअप: Selenium यह ऑपरेटिंग सिस्टम के डायलॉग बॉक्स को हैंडल नहीं कर सकता, इसलिए बाहरी सहायता की आवश्यकता है।
  • ऑटोइट विधि: एक कंपाइल की गई AutoIt स्क्रिप्ट पॉपअप को यूजरनेम और पासवर्ड भेजती है।
  • 🚨 अलर्ट विधि: अलर्ट पर स्विच करें और sendKeys का उपयोग करके क्रेडेंशियल भेजें, फिर स्वीकार करें।

प्रॉक्सी प्रमाणीकरण को संभालें Selenium वेबड्राइवर

एक प्रॉक्सी क्या है?

प्रॉक्सी क्लाइंट द्वारा अनुरोध भेजने और सर्वर द्वारा प्रतिक्रिया देने के बीच मध्यस्थ के रूप में कार्य करता है। प्रॉक्सी का प्राथमिक उपयोग कई इंटरैक्टिव सिस्टम के बीच गोपनीयता और एनकैप्सुलेशन बनाए रखना है।

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

इस प्रक्रिया को 'कंटेंट फ़िल्टरिंग' के नाम से जाना जाता है और इसका सबसे ज़्यादा इस्तेमाल शैक्षणिक संस्थानों, कॉर्पोरेट ऑफ़िस आदि में किया जाता है। प्रॉक्सी की मदद से कंटेंट फ़िल्टरिंग को आसानी से पूरा किया जा सकता है। इंटरनेट के मामले में, प्रॉक्सी को एक अलग सर्वर के रूप में लागू किया जा सकता है जो क्लाइंट मशीनों और वास्तविक वेब या डेटाबेस सर्वर के बीच में खड़ा होता है।

SOCKS और HTTP प्रॉक्सी के बीच अंतर

सॉक्स Http प्रॉक्सी
SOCKS का मतलब है सुरक्षित सॉकेट। इसे आम तौर पर क्लाइंट और सर्वर के बीच फ़ायरवॉल के रूप में इस्तेमाल किया जाता है HTTP प्रॉक्सी का उपयोग क्लाइंट और सर्वर के बीच फ़ायरवॉल के रूप में भी किया जा सकता है, लेकिन इसका उपयोग केवल HTTP अनुरोधों के लिए ही किया जा सकता है
SOCKS आदान-प्रदान किये जा रहे डेटा की व्याख्या नहीं करता है HTTP प्रॉक्सी क्लाइंट और सर्वर के बीच आदान-प्रदान किए जा रहे डेटा की व्याख्या करता है
प्रदर्शन के मामले में धीमा SOCKS की तुलना में बेहतर प्रदर्शन

प्रॉक्सी को कैसे संभालें Selenium क्रोम में वेबड्राइवर

HTTP प्रॉक्सी प्रमाणीकरण के साथ Selenium क्रोम में निम्नलिखित तरीकों का उपयोग करके नियंत्रित किया जा सकता है

  • AutoIt टूल का उपयोग करना
  • अलर्ट का उपयोग करना

AutoIt टूल का उपयोग करना

AutoIt एक तृतीय-पक्ष टूल है जिसका उपयोग विंडोज डेस्कटॉप स्वचालन के लिए किया जाता है। Selenium केवल वेब-आधारित पॉपअप और विंडोज़ को संभालता है, ऑपरेटिंग सिस्टम नियंत्रण को संभालना संभव नहीं है Selenium.

इसके लिए AutoIt जैसे बाहरी तृतीय-पक्ष उपकरणों का उपयोग करके उन्हें एकीकृत करना आवश्यक है। Seleniumइसके लिए, वेबसाइटों पर फ़ाइल अपलोड और फ़ाइल डाउनलोड को संभालने के लिए AutoIt का सबसे अधिक उपयोग किया जाता है।

AutoIt का उपयोग करने के लिए, आपको अपने स्थानीय कंप्यूटरों पर AutoIt सॉफ़्टवेयर डाउनलोड और इंस्टॉल करना होगा।

AutoIt को डाउनलोड और इंस्टॉल करने की प्रक्रिया इसमें शामिल है। लेख.

प्रोग्राम्स – ऑटोइट टूल – SciTE स्क्रिप्ट एडिटर खोलें और नीचे उल्लिखित ऑटोइट स्क्रिप्ट को ऑटोइट एडिटर में जोड़ें और इसे अपने सिस्टम में 'ProxyAuthentication.au3' के रूप में सेव करें

फ़ाइल संकलित करें और इसे 'ProxyAuthentication.exe' के रूप में परिवर्तित करें।

In EclipseAutoIt फ़ाइल को इसमें जोड़ें Selenium स्क्रिप्ट और रन

नीचे HTTP प्रॉक्सी प्रमाणीकरण के लिए AutoIt स्क्रिप्ट दी गई है।

Send("guru99{ENTER}")
Send("guru99{ENTER}")

आपको निष्पादन के लिए AutoIt फ़ाइल पास करनी होगी। Selenium नीचे दिए गए कोड का उपयोग करके webdriver

स्रोत Code:

package Guru99Demo;
import java.io.IOException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class AutoItDemo {
    public static void main(String[] args) throws IOException {
        System.setProperty("webdriver.chrome.driver", "D:\\ chromedriver.exe");;
        WebDriver driver = new ChromeDriver();
        driver.get("https://demo.guru99.com/test/basic_auth.php");
        //Passing the AutoIt Script to Selenium	
        Runtime.getRuntime().exec("D:\\Data_Personal\\ProxyAuthentication.exe");
    }
}

Code स्पष्टीकरण:

  • पहले चरण में, आप सिस्टम प्रॉपर्टी को chromedriver.exe फ़ाइल को इंगित करने के लिए सेट करके क्रोम ड्राइवर का एक इंस्टेंस आरंभ कर रहे हैं
  • दूसरे चरण में, आप वेब ड्राइवर का एक ऑब्जेक्ट इनिशियलाइज़ करते हैं और वेबसाइट को पास करते हैं। URL गेट विधि का उपयोग करना
  • अंत में, आप ऑटोइट स्क्रिप्ट फ़ाइल का उपयोग करके HTTP प्रॉक्सी प्रमाणीकरण पॉपअप में उपयोगकर्ता नाम और पासवर्ड भेज रहे हैं।

Code आउटपुट:

AutoIt का उपयोग करके उपयोगकर्ता नाम अलर्ट हैंडलिंग
AutoIt का उपयोग करके उपयोगकर्ता नाम अलर्ट हैंडलिंग
AutoIt का उपयोग करके पासवर्ड अलर्ट हैंडलिंग

AutoIt का उपयोग करके पासवर्ड अलर्ट हैंडलिंग
प्रॉक्सी प्रमाणीकरण सफलता स्क्रीन

प्रॉक्सी प्रमाणीकरण सफलता स्क्रीन

अलर्ट का उपयोग करना

अलर्ट सरल हैं, इनबिल्ट सुविधा प्रदान की गई है Selenium वेब ड्राइवर। आप प्रॉक्सी प्रमाणीकरण पॉपअप का उपयोग करके संभाल सकते हैं Selenium HTTP प्रॉक्सी प्रमाणीकरण अलर्ट पर स्विच करके और उपयोगकर्ता नाम और पासवर्ड को सीधे अलर्ट में भेजकर वेब ड्राइवर को सेंड कीज़ विधि की सहायता से।

उदाहरण:

परीक्षण परिदृश्य:

वेबसाइट पर HTTP प्रॉक्सी प्रमाणीकरण पॉपअप को संभालें: https://demo.guru99.com/test/basic_auth.php अलर्ट का उपयोग करना Selenium वेब ड्राइवर.

स्रोत कोड उदाहरण:

package Guru99Demo;
import java.io.IOException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class AlertsDemo {
    public static void main(String args[]) throws IOException {
        System.setProperty("webdriver.chrome.driver", "D:\\Data_Personal\\Software\\chromedriver_win32\\chromedriver.exe");;
        WebDriver driver = new ChromeDriver();
        driver.get("https://demo.guru99.com/test/basic_auth.php");
        // Handling Username alert
        driver.switchTo().alert().sendKeys("guru99");
        driver.switchTo().alert().accept();
        // Handling Password alert
        driver.switchTo().alert().sendKeys("guru99");
        driver.switchTo().alert().accept();
    }
}

Code उत्पादन

प्रॉक्सी प्रमाणीकरण सफलतापूर्वक किया गया.

Code स्पष्टीकरण:

  • प्रारंभ में, आप chromedriver.exe फ़ाइल के स्थान को इंगित करने के लिए webdriver गुण को सेट करके Chrome ड्राइवर का एक इंस्टेंस बना रहे हैं
  • फिर, आप इसे खोल रहे हैं URL आवश्यक वेबसाइट को पास करके URL driver.get() विधि के पैरामीटर के रूप में
  • एक बार URL जब अलर्ट खुलता है, तो आप यूज़रनेम अलर्ट पर स्विच करते हैं और यूज़रनेम – guru99 भेजते हैं। फिर आप alert.accept मेथड का उपयोग करके अलर्ट पर OK बटन पर क्लिक करते हैं।
  • फिर, आप पासवर्ड अलर्ट पर स्विच कर रहे हैं और पासवर्ड भेज रहे हैं - guru99. फिर आप अलर्ट.स्वीकार विधि का उपयोग करके अलर्ट पर ओके बटन पर क्लिक कर रहे हैं

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

आप क्रेडेंशियल को https://user:pass@site.com के रूप में एम्बेड कर सकते हैं, लेकिन आधुनिक क्रोम और Firefox सुरक्षा कारणों से इसे ब्लॉक करें। प्रॉक्सी प्रमाणीकरण के लिए अलर्ट या ब्राउज़र एक्सटेंशन अब अधिक विश्वसनीय हैं।

AutoIt स्वचालित करता है Windows डेस्कटॉप नियंत्रण जो Selenium कुछ ऐसे आइटम हैं जिन तक पहुंचा नहीं जा सकता, जैसे कि नेटिव ऑथेंटिकेशन पॉपअप और फ़ाइल-अपलोड डायलॉग। आप एक AutoIt स्क्रिप्ट को एक एक्जीक्यूटेबल में कंपाइल करते हैं और उसे कॉल करते हैं। Selenium कोड।

प्रॉक्सी विशिष्ट एप्लिकेशन या ब्राउज़र के लिए ट्रैफ़िक को रीडायरेक्ट करता है, मुख्य रूप से आईपी पते छुपाता है या सामग्री को फ़िल्टर करता है। वीपीएन सिस्टम-व्यापी रूप से सभी डिवाइस ट्रैफ़िक को एन्क्रिप्ट करता है, जिससे मानक प्रॉक्सी की तुलना में अधिक गोपनीयता मिलती है।

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

एआई उपकरण प्रॉक्सी को बुद्धिमानी से बदलते हैं, अवरुद्ध अनुरोधों का पता लगाते हैं और प्रमाणीकरण संकेत मिलने पर प्रतीक्षा समय को अनुकूलित करते हैं। यह स्वचालन कॉर्पोरेट या सामग्री-फ़िल्टरिंग प्रॉक्सी के पीछे स्थित साइटों के लिए परीक्षण स्थिरता में सुधार करता है।

हां. Selenium 4 में क्रोम डेवटूल्स प्रोटोकॉल के लिए समर्थन जोड़ा गया है, जिससे आप प्रोग्रामेटिक रूप से HTTP क्रेडेंशियल सेट कर सकते हैं और बुनियादी प्रमाणीकरण को संभाल सकते हैं, जिससे कई प्रॉक्सी परिदृश्यों के लिए ऑटोइट से बचा जा सकता है।

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