2012-08-10 27 views
5

मैं एक निर्देशिका में एक विशिष्ट छवि को बचाने के लिए सेलेनियम webdriver उपयोग करने के लिए कोशिश कर रहा हूँ सेलेनियम Webdriver (अजगर) का उपयोग कर एक संदर्भ मेनू में चयन करके एक छवि को बचाने के लिए "के रूप में छवि को बचाने ..."। मैं img तत्व पर राइट क्लिक अनुकरण करके और "छवि को इस रूप में सहेजें ..." का चयन करके ऐसा करने के लिए देख रहा था। निम्नलिखित कोड के साथ मैं संदर्भ मेनू खोल सकता हूं, लेकिन मैं सही विकल्प चुनने में असमर्थ हूं।कैसे

browser = WebDriver(executable_path=CHROMEDRIVER_PATH) 
browser.get(URL) 
img = browser.find_element_by_tag_name('img') 
ActionChains(browser).context_click(img).perform() 

मैं भी करने की कोशिश की:

ActionChains(browser).context_click(img).send_keys(Keys.ARROW_DOWN).send_keys(Keys.ENTER).perform()     

और एक शॉर्टकट का उपयोग कर ('वी' का चयन करने लगता है "के रूप में छवि को बचाने ...")

ActionChains(browser).context_click(img).send_keys('v').perform() 

छवि नहीं है एक सीधा यूआरएल क्योंकि यह एक कैप्चा छवि है जिसे प्रत्येक क्लिक पर यादृच्छिक रूप से पुनः लोड किया जाता है। मुझे एकमात्र तरीका मिला, मेरे लिए इसे संसाधित करने में सक्षम होने के लिए, इसे पहले डिस्क पर सहेजना है ("छवि को बचाने के रूप में ..." का उपयोग करना)। पूरे पृष्ठ को सहेजना इस विशिष्ट छवि को सहेजता नहीं है, इसलिए यह भी काम नहीं करेगा।

कोई भी विचार?

+0

हो सकता है कि यह आप http://stackoverflow.com/a/3324611/541208 आपके उत्तर के लिए – TankorSmash

+0

टी.के.एस मदद कर सकते हैं, लेकिन मुझे लगता है कि इस समस्या का समाधान नहीं है। यदि संभव हो तो मैं क्रोम वेब ड्राइवर का उपयोग करके इसे प्राप्त करना चाहता हूं। जावास्क्रिप्ट को प्रस्तुत करते समय मुझे फ़ायरफ़ॉक्स का उपयोग करने में कुछ परेशानी थी। –

उत्तर

3

यदि यह एक कैप्चा आप के बाद हो, तो आप शायद बेहतर बस एक स्क्रीनशॉट लेने कर रहे हैं।

driver.save_screenshot('screenshot.png') 
0

kreativitea ने सुझाव दिया के रूप में, एक स्क्रीनशॉट क्योंकि कॅप्चा का आप क्या करने की कोशिश कर रहे हैं क्या कर से स्क्रिप्ट को रोकने के लिए डिजाइन किए गए थे जाने का रास्ता होगा। कैप्चा का सत्र पुन: उपयोग को रोकने के लिए है। Here is a page सत्र पुन: उपयोग का वर्णन करता है।

0

मैं इसी तरह की समस्या हो रही थी और अभी के रूप में सहेजें का उपयोग करके एक छवि को बचाने के लिए एक शॉर्टकट मिल गया ---

Step-1-right click on an image you wish to save 
Step-2- press v. 
Step-3-Enter to the directory window to save 

के बाद से मैं एक जावा प्रोग्रामर thats हूँ क्यों मैं एक कोड पेस्ट करने में सक्षम नहीं था तदनुसार (सवाल अजगर के लिए पूछा)।