2013-01-08 12 views
5

मुझे रिकैप्चा से स्थानीयहोस्ट डिस्क में छवि को सहेजने की ज़रूरत है, मुझे वॉटर-वेबड्राइवर का उपयोग करके छवि डोम तत्व मिल रहा है, लेकिन यह वॉटर के रूप में सहेजने की विधि का समर्थन नहीं करता है। तो मैं अपनी डिस्क पर छवि कैसे सहेज सकता हूं? एचटीएमएल:वॉटर-वेबड्राइवर में छवि सहेजें

<div id="recaptcha_image" style="width: 300px; height: 57px;"> 
    <img style="display:block;" alt="Проверка по слову reCAPTCHA" height="57" width="300" src="https://www.google.com/recaptcha/api/image?c=03AHJ_VusSUxF0IYURRcVTVTjJJnUk92j-hXYsuwqvu0m5tvKFzAnwvrHlz-j_Gfqg-sUrHLj3D2DrUYNNg4uvr2BNgZqlK5vpJUJVYkkWo36I4RRmRGkYZru5kBYhzPCCn49KlH6wW_iLw6vIzv7vnhpu6ndqxb-9SkIRrVYyBwN39kg18Lov7Hc"> 
</div> 

और माणिक कोड:

cap = @browsers[i].div(:id => 'recaptcha_image').image 

कैसे डिस्क पर छवि फ़ाइल को बचाने के लिए?

उत्तर

5
require 'watir-webdriver'  
require 'open-uri' 

image_src = @browsers[i].div(:id => 'recaptcha_image').image.src 

File.open("/path/", 'wb') do |f| 
    f.write open(image_src).read 
end 
2

आप उपयोग कर सकते हैं रूबी के open-uri इस प्रकार है:

require 'open-uri' 

url = "the image url" #https://www.google.com/recaptcha/api/image?c=03A.... 

File.open("./image.jpg", "wb") do |file_write| 
    open(url, 'rb') do |file_read| 
    file_write.write(file_read.read) 
    end 
end 
0
require 'watir-get-image-content' 
    def save_captcha(@browser)  
     img = @browser.image(xpath: '//*[@id="ctl00_captcha"]/td[2]/div[1]/span[1]/img')   
     filename = "#{@path}/tmp/current_captcha.jpg" 
     File.open(filename, 'wb'){|file| file.write(img.to_jpg) }   
    end 
संबंधित मुद्दे