2017-06-14 13 views
6

क्रोम 59 के साथ मूल प्रमाणीकरण removed support for https://user:[email protected] URLs है।क्रोम 59 और सेलेनियम/फ्लुएंटलिनियम

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

WebDriverWait wait = new WebDriverWait(getDriver(), 10);  
Alert alert = wait.until(ExpectedConditions.alertIsPresent());  
alert.authenticateUsing(new UserAndPassword("test", "test")); 

(के आधार पर:

alert().authenticateUsing(new UserAndPassword("test", "test")); 

सेलेनियम-केवल संस्करण में एक ही मुद्दा है यहां दिए गए उत्तर: How to handle authentication popup with Selenium WebDriver using Java)

मैं फ़ायरफ़ॉक्स में इसे संभालने के लिए कई कामकाज देख सकता हूं, लेकिन क्रोम के लिए कुछ भी नहीं। क्या कोई वैकल्पिक दृष्टिकोण है?

उत्तर

8

मैं यकीन है कि फ्लोरेंट बी के समाधान व्यवहार्य हैं, लेकिन के लिए रेट्रो-फिटिंग एक पुरानी परीक्षण, मैं पाया गया कि this duplicate question पर ज़ूनबार का समाधान लागू करना आसान है, काफी कम कोड लेता है, और परीक्षण बॉक्स की कोई विशेष तैयारी की आवश्यकता नहीं होती है। ऐसा लगता है कि कोड को देखने वाले नए डेवलपर्स के लिए पालन करना आसान होगा।

संक्षेप में: परीक्षण के तहत यूआरएल (क्रेडेंशियल्स के बिना) पर जाने से पहले क्रेडेंशियल के साथ किसी भी यूआरएल पर जाकर ब्राउजर को क्रेडेंशियल याद रखना होगा।

goTo("http://user:[email protected]"); // Caches auth, but page itself is blocked 
goTo("http://localhost"); // Uses cached auth, page renders fine 
// Continue test as normal 

यह ब्राउज़र में भेद्यता की तरह महसूस हो सकता है जिसे पैच किया जाएगा, लेकिन मुझे लगता है कि यह असंभव है; फ़िशिंग जोखिमों से बचने के लिए प्रतिबंध लगाया गया है (जहां उपयोगकर्ता नाम चुना गया डोमेन जैसा दिखता है, उदाहरण के लिए "http://google.com:[email protected]m/"), और क्रेडेंशियल सेट करने के लिए यह कार्यवाही एक ही जोखिम उत्पन्न नहीं करती है।

See zoonabar's answer

1

एक समाधान आवश्यक प्रमाण-पत्रों के साथ शीर्षलेख को इंजेक्ट करने के लिए एक पारदर्शी प्रॉक्सी चलाने के लिए है।

लेकिन एक और आसान समाधान एक छोटा सा एक्सटेंशन बनाने के लिए स्वचालित रूप से साख स्थापित करने के लिए है:

https://gist.github.com/florentbr/25246cd9337cebc07e2bbb0b9bf0de46

0

https://bugs.chromium.org/p/chromium/issues/detail?id=435547#c33 में अधिक आप एक mkwst कह वहाँ बुनियादी प्रमाणीकरण प्रामाणिकता और एक ही मूल साइटों के बारे में एक बग था यह स्थिर में बनाया देख सकते हैं।

आप "--disable-पलक-सुविधाओं = BlockCredentialedSubresources" का उपयोग करें या एक क्रोम कैनरी में जाते हैं तो निर्माण आप पा सकते हैं कि मूल समस्या आप देख रहे थे किसी भी अधिक नहीं हो रहा है ...

संबंधित मुद्दे