मैं ब्राउज़र क्रियाओं के कुछ स्वचालन करने के लिए विंडोज 10 सिस्टम पर सेलेनियम वेबड्राइवर और पायथन का उपयोग करने का प्रयास करता हूं। लेकिन मुझे यह समस्या है: सेलेनियम-शुरू की गई फ़ायरफ़ॉक्स विंडो "देखती" नहीं है कि मैं पहले से ही लॉग इन हूं और लक्ष्य साइट मुझे लॉगिन पेज पर भेजती है। तो मैंने मान लिया कि सेलेनियम वास्तव में प्रोफ़ाइल का उपयोग नहीं करता है, बल्कि इसकी एक प्रति है।
मेरी जानने की इच्छा है:
- क्या प्रोफाइल की कॉपी के वास्तविक उपयोग के बारे में मेरा निष्कर्ष सही है?
- यदि 1. सत्य है, तो क्या मौजूदा प्रोफ़ाइल से वास्तव में सब कुछ उपयोग करने का कोई तरीका है?
- यदि मेरा निष्कर्ष सत्य नहीं है, तो कृपया इसे साबित करें और मुझे उस दिशा में इंगित करें जहां मुझे पता चल सके कि सत्र के लिए कौन सी जानकारी का उपयोग किया जा सकता है, सेलेनियम इसे भेजने में विफल क्यों हो सकता है और इसे वास्तव में ऐसा करने के लिए कैसे मजबूर किया जा सकता है।
संपादित करें:
from selenium import webdriver
fp = webdriver.FirefoxProfile('C:/Users/<user name>/AppData/Roaming/Mozilla/Firefox/Profiles/abc3defghij2.ProfileName')
driver = webdriver.Firefox(fp)
driver.get("https://www.example.com/membersarea")
1 उत्तर
सेलेनियम वास्तव में प्रोफ़ाइल की एक प्रति का उपयोग करता है, हालांकि इससे कोई समस्या नहीं होनी चाहिए। मुझे लगता है कि आपकी समस्या सत्र कुकीज़ बनाम लगातार कुकीज़ के साथ अधिक है।
support.mozilla.org एक सूची है जो दर्शाती है कि वास्तव में आपकी प्रोफ़ाइल में कौन सी जानकारी संग्रहीत है। ध्यान दें कि कुकीज़ इनमें से हैं, हालांकि session-cookies कोookies.sqlite में संग्रहित नहीं किया जाता है, जो यही कारण है कि सेलेनियम आपके सत्र का पुनर्निर्माण नहीं कर सकता क्योंकि यह प्रोफ़ाइल में प्रकट नहीं होता है।
हालाँकि, कई साइटें अपने लॉगिन पृष्ठ पर एक remember-me
या एक stay-logged-in
विकल्प प्रदान करती हैं, जिसका यदि उपयोग किया जाता है, तो यह एक स्थायी कुकी को संग्रहीत करेगा जिसके द्वारा सत्र को पुनर्स्थापित किया जा सकता है। मैंने जीमेल के साथ इसका परीक्षण करने के लिए निम्न स्क्रिप्ट का उपयोग किया,
from selenium import webdriver
url = "https://mail.google.com"
fp = webdriver.FirefoxProfile('/Users/<username>/Library/Application Support/Firefox/Profiles/71v1uczn.default')
driver = webdriver.Firefox(fp)
driver.get(url)
जब मैं stay-logged-in
विकल्प सक्षम के साथ जीमेल में लॉग इन करने के बाद इस स्क्रिप्ट को चलाता हूं, तो सेलेनियम मेरे इनबॉक्स तक पहुंचने में सक्षम होता है। यदि stay-logged-in
विकल्प सक्षम नहीं है तो मेरे ब्राउज़र को बंद करने पर सत्र नष्ट हो जाता है और इस प्रकार सेलेनियम इसे पुनर्स्थापित भी नहीं कर सकता है।
नीचे दिया गया स्क्रीनशॉट दिखाता है कि सत्र कुकीज़ वास्तव में कुकीज़.स्क्लाइट में संग्रहीत नहीं हैं और इस प्रकार सेलेनियम द्वारा उपयोग किए जाने पर प्रोफ़ाइल में दिखाई नहीं देती हैं।
stay-logged-in
विकल्प नहीं मिला, क्या इसे हटा दिया गया है?
about:support
का उपयोग करके अपना सक्रिय प्रोफ़ाइल-फ़ोल्डर ढूंढ सकते हैं
संबंधित सवाल
जुड़े हुए प्रश्न
नए सवाल
python
पायथन एक बहु-प्रतिमान है, गतिशील रूप से टाइप किया हुआ, बहुउद्देशीय प्रोग्रामिंग भाषा है। यह एक साफ और एक समान वाक्यविन्यास सीखने, समझने और उपयोग करने के लिए त्वरित होने के लिए डिज़ाइन किया गया है। कृपया ध्यान दें कि अजगर 2 आधिकारिक तौर पर 01-01-2020 के समर्थन से बाहर है। फिर भी, संस्करण-विशिष्ट पायथन सवालों के लिए, [अजगर -२.०] या [अजगर -३.x] टैग जोड़ें। पायथन वेरिएंट (जैसे, ज्योथन, PyPy) या लाइब्रेरी (उदा।, पांडस और न्यूमपी) का उपयोग करते समय, कृपया इसे टैग में शामिल करें।