मैं परीक्षण मामलों को लिखने के लिए पायथन कोड का उपयोग करके उबंटू 10.04 में सेलेनियम ग्रिड पर सेलेनियम 2.0b4dev चला रहा हूं। मुझे एक विशिष्ट साइट के काम करने के लिए बुनियादी HTTP प्रमाणीकरण प्राप्त करने में समस्या हो रही है, और एक त्वरित Google खोज के साथ मैंने पाया कि मेरी समस्या को self.selenium.add_custom_request_header("Authorization", "Basic %s " % _encoded) (बेशक, पीईपी 8 के अनुरूप होने के लिए बीच में एक उचित लाइन ब्रेक के साथ।)

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

अगर कोई मदद कर सकता है तो यह बहुत ही शानदार होगा।

0
wanderso 10 मई 2011, 22:32

1 उत्तर

सबसे बढ़िया उत्तर

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

http://mogotest.com/blog/2010/06/23/how-to-perform-basic-auth-in-selenium

ग्रिड से अंतर्निहित आरसी सर्वर तक तर्क पारित करने के लिए, आपको कुछ ऐसा उपयोग करने की आवश्यकता है:

ant -DseleniumArgs="-trustAllSSLCertificates" launch-remote-control

पुन: ब्राउज़र। . . यदि आप अभी trustAllSSLCertificates पास करते हैं तो फ़ायरफ़ॉक्स प्रॉक्सी मोड सामग्री को स्वतः सक्षम कर देगा। अन्यथा आपको *फ़ायरफ़ॉक्सप्रॉक्सी का उपयोग करने की आवश्यकता है। IE को *iexploreproxy या एक कस्टम HTA लॉन्चर के उपयोग की आवश्यकता होती है जो प्रॉक्सी को कॉन्फ़िगर करता है (लेख एक से लिंक करता है जिसे हमने ओपन-सोर्स किया है लेकिन 2.0 बीटा 4 के साथ काम करने के लिए इसे अपडेट करने की आवश्यकता होगी)।

1
nirvdrum 11 मई 2011, 22:55
"फ़ायरफ़ॉक्स प्रॉक्सी मोड को स्वतः सक्षम कर देगा" से, क्या आपका मतलब है कि मुझे फ़ायरफ़ॉक्स लॉन्चर को पैच करना होगा जैसे आपने "सेलेनियम में स्व-हस्ताक्षरित एसएसएल प्रमाणपत्र कैसे स्वीकार करें" पृष्ठ में किया था और फिर उसे पास करें -DseleniumArgs? या क्या मैं बस उस ध्वज को पास कर सकता हूं और इसे सेलेनियम ग्रिड के नवीनतम संस्करण में पैच किए बिना काम कर सकता हूं? मैंने अपने रिमोट में उस झंडे को पास करने की कोशिश की और यह अभी भी काम नहीं कर रहा है, और मैंने आपके उन दो लेखों को खोजने के बाद से समय बिताया है, जो इस बात की तलाश में हैं कि फ़ायरफ़ॉक्स को प्रॉक्सी को स्वीकार करने के लिए मुझे कहाँ और क्या पैच करना चाहिए। (शायद मुझे हब में -avoidproxy जोड़ने की आवश्यकता है?)
 – 
wanderso
11 मई 2011, 23:51
ओह, और प्रतिक्रिया के लिए आपको धन्यवाद देने के अलावा, मुझे यह भी पूछना चाहिए कि क्या आप अपने ग्रिड पर सेलेनियम 1.X या 2.X का उपयोग कर रहे हैं। मैंने यह कहते हुए कुछ पढ़ा कि आपका चतुर समाधान अब 2.X में काम नहीं करता है, लेकिन उन कारणों से जो मुझे समझ में नहीं आया।
 – 
wanderso
12 मई 2011, 00:54
मुझे उस पोस्ट में एक नोट जोड़ना है। चूंकि यह लिखा गया था, मैंने उस पैच को ट्रंक में *फ़ायरफ़ॉक्स लॉन्चर पर लागू किया। इसे 2.0a5 या तो में जोड़ा गया था। यदि आप इसे एचटीए मोड में उपयोग करना चाहते हैं तो आईई को अभी भी एक कस्टम लॉन्चर की आवश्यकता है।
 – 
nirvdrum
12 मई 2011, 02:13
पोस्ट सेलेनियम 1.x एपीआई के लिए लिखा गया था, जो अभी भी 2.x वितरण में मौजूद है। वेबड्राइवर एपीआई में प्रॉक्सी को कॉन्फ़िगर करना पूरी तरह से अलग है। यदि आप ग्रिड 1.x का उपयोग कर रहे हैं, तो आप सेलेनियम 1.x एपीआई का उपयोग कर रहे हैं, इसलिए लेख अभी भी सटीक है।
 – 
nirvdrum
12 मई 2011, 02:15
मैं अपने रिमोट कंट्रोल पर ग्रिड 1.0.8 और -DseleniumArgs="-trustAllSSLCertificates" ध्वज का उपयोग कर रहा हूं, और अभी भी कोई भाग्य नहीं है। फ़िर भी सहायता के लिए धन्यवाद। जब मैं लॉन्च-हब चला रहा था (या "-avoidProxy" में नहीं जा रहा था) तो मैंने हब में "-avoidProxy" को पास करने के सभी चार संयोजनों की कोशिश की, और सेलेनियम स्टार्टअप को हब सेल्फ.सेलेनियम की ओर इशारा किया। = सेलेनियम ("लोकलहोस्ट", 4444, "*फ़ायरफ़ॉक्स", "localhost:4444") और फिर ओपन ऑन का उपयोग करना जिस साइट को मुझे प्रमाणित करने की आवश्यकता है (या इसे सीधे लक्षित करने के लिए खोलना है।) सभी चार संयोजनों के लिए उपयोगकर्ता को पासवर्ड टाइप करने की आवश्यकता होती है।
 – 
wanderso
12 मई 2011, 03:27