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




authentication selenium (4)

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

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

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

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

https://code.i-harness.com

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

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

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


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

driver.get("http://UserName:[email protected]");

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

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

//localdomain\user:[email protected]

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

प्रमाण पत्र और डोमेन /etc/cntlm.conf में कॉन्फ़िगर किए /etc/cntlm.conf

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

DesiredCapabilities capabilities = DesiredCapabilities.chrome();

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

driver = new ChromeDriver(capabilities);

समाधान का प्रयास करें और किसी भी मुद्दे के मामले में मुझे बताएं:

driver.get('https://example.com/')
driver.switchTo().alert().sendKeys("username" + Keys.TAB + "password");
driver.switchTo().alert().accept();

यह मेरे लिए ठीक काम कर रहा है





popup