दिलचस्प पोस्ट
नए बाह्य भंडारण ध्वज के साथ कोर डेटा में UIImage को संग्रहीत करना 'के लिए' छोरों का प्रयोग करके शब्दकोशों पर परावर्तित करना MySql: MyISAM बनाम Inno DB! नेविगेशनबार के साथ आईओएस 7 स्टेटस बार की टक्कर एक निर्माता के रूप में __init__? सी # का उपयोग कर एक .gz फाइल को अनज़िप करना अजगर स्ट्रिंग में कन्वर्ट स्पष्ट रूप से कॉमा या विभक्तकों के रूप में बिंदु का उपयोग कर फ़्लोट करता है दृश्य स्टूडियो में कमांड लाइन पैरामीटर के साथ डीबग करना सी # मुझे एक अपरिवर्तनीय शब्दकोश देने का एक तरीका है? रनटाइम पर मैं एक पथ कैसे निर्दिष्ट कर सकता हूं? मैं VBA में FileSystemObject का उपयोग कैसे करूं? एक छवि फ़ाइल में Base64 स्ट्रिंग कन्वर्ट? जावा और एक्सएमएल में कस्टम घटक मापदंडों को कैसे पारित करें इकाई फ़्रेमवर्क और SQL सर्वर देखें PHP की छुपी हुई विशेषताएं?

जावा का उपयोग करके सेलेनियम वेबड्राइवर के साथ प्रमाणीकरण पॉपअप कैसे प्रबंधित करें

मैं नीचे कोड का उपयोग करके प्रमाणीकरण पॉपअप को संभालने की कोशिश कर रहा हूं:

FirefoxProfile profile = new FirefoxProfile(); profile.setPreference("network.http.phishy-userpass-length", 255); profile.setPreference("network.automatic-ntlm-auth.trusted-uris", "xxxx"); driver = new FirefoxDriver(profile); baseUrl="http://" + login + ":" + password + "@" + url; driver.get(baseUrl + "/"); 

जब मैं परीक्षण निष्पादित करता हूं, तो पृष्ठ प्रमाणीकरण पॉपअप को दिखाता है और जब तक मैं रद्द करें बटन पर क्लिक नहीं करता हूं। एक पल, मैं अगले पेज तक पहुंच सकता हूं, इसका मतलब यह है कि प्रमाणीकरण सफलता है लेकिन फिर भी हमेशा प्रमाणीकरण पॉपअप दिखाता है

वेब के समाधान से एकत्रित समाधान "जावा का उपयोग करके सेलेनियम वेबड्राइवर के साथ प्रमाणीकरण पॉपअप कैसे प्रबंधित करें"

चेतावनी विधि, authenticateUsing() आपको एचटीटीपी मूलभूत प्रमाणीकरण बॉक्स को छोड़ने देता है।

 WebDriverWait wait = new WebDriverWait(driver, 10); Alert alert = wait.until(ExpectedConditions.alertIsPresent()); alert.authenticateUsing(new UserAndPassword(username, password)); 

सेलेनियम 3.4 के रूप में अब भी बीटा में है

अभी कार्यान्वयन केवल InternetExplorerDriver लिए किया जाता है

फ़ायरफ़ॉक्स प्रोफाइल का उपयोग न करें और नीचे कोड का प्रयास करें:

 driver.get("http://UserName:Password@Example.com"); 

यदि आप इसे IE ब्राउज़र में कार्यान्वित कर रहे हैं, तो कुछ ऐसी चीजें हैं जिन्हें आपको करना है।

यदि आपके प्रमाणीकरण सर्वर को डोमेन नाम "डोमेनउज़र" जैसे उपयोगकर्ता नाम की आवश्यकता है, तो आपको यूआरएल / डबल स्लैश जोड़ना होगा:

 //localdomain\user:password@example.com 

मैंने इस मुद्दे को अपने आवेदन में कई बार सामना किया

हम आम तौर पर नीचे दिए गए 2 तरीकों से इसे संभाल सकते हैं

  1. उपयोगकर्ता नाम और पासवर्ड यूआरएल में ही पास करें

  2. यूआरएल खोलने से पहले आप एक ऑटोैट स्क्रिप्ट बना सकते हैं और स्क्रिप्ट कॉल कर सकते हैं।

कृपया नीचे दिए गए लेख की जांच करें जिसमें मैंने दोनों तरीकों का उल्लेख किया है:
सेलेनियम वेबड्रिवर में प्रमाणीकरण / लॉगिन विंडो को संभालना

ऑटोएथ प्लगइन का उपयोग करके इसे फ़ायरफ़ॉक्स के लिए काम करना चाहिए:

 FirefoxProfile firefoxProfile = new ProfilesIni().getProfile("default"); File ffPluginAutoAuth = new File("D:\\autoauth-2.1-fx+fn.xpi"); firefoxProfile.addExtension(ffPluginAutoAuth); driver = new FirefoxDriver(firefoxProfile); 

यदि आपको NTLM प्रॉक्सी प्रमाणीकरण से निपटना होगा तो CNTLM का उपयोग करके एक स्थानीय प्रॉक्सी कॉन्फ़िगर करने के लिए एक अच्छा विकल्प है।

क्रेडेंशियल और डोमेन /etc/cntlm.conf में कॉन्फ़िगर किया गया है

इसके बाद आप केवल अपनी प्रॉक्सी का उपयोग कर सकते हैं जो सभी एनटीएलएम सामानों को संभालता है।

 DesiredCapabilities capabilities = DesiredCapabilities.chrome(); Proxy proxy = new Proxy(); proxy.setHttpProxy("localhost:3128"); capabilities.setCapability(CapabilityType.PROXY, proxy); driver = new ChromeDriver(capabilities);