0

私はJS経由でロードされた一連のページから一連の情報を取得しようとしています.watir-webdriverを使用してページをロードし、nokogiriを使用してそれらを解析しています. これはうまく機能していますが、ページから写真を取得する必要があります。画像のパスはページの読み込み時に生成されるため、次のように記述して、画像への相対 URL の配列を作成し、配列の最初のインデックスの絶対 URL に直接移動します。これは常に必要な画像です。

img_srcs = $page_html.css('img').map{ |i| i['src'] }    #genereates an array of relative urls pointing to every image
imageURL= "website.com" + img_srcs[1].gsub("..","").to_s    #take the relative URL of image at index position 1 (the image) and converts it to an absolute URL
$browser.goto(imageURL)

ブラウザが直接ロードしたこの画像を保存するにはどうすればよいですか? ご不明な点がございましたら、お気軽にお問い合わせください。

編集:次のコードを追加しました

image_source = $browser.image(:class => "decoded").image.src
File.open("#{$imageID}.txt", "w") do |f|
    f.write open(image_source).read
    f.close
end

ただし、エラーが発生します

C:/Ruby192/lib/ruby/gems/1.9.1/gems/watir-webdriver-0.6.4/lib/watir-webdriver/el
ements/element.rb:490:in 'assert_exists': unable to locate element, using {:tag_
name=>"img"} (Watir::Exception::UnknownObjectException)
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/watir-webdriver-0.6.4/lib/watir
-webdriver/attribute_helper.rb:71:in 'block in define_string_attribute'
    from 12.rb:121:in 'imageDownload'
    from 12.rb:134:in 'navAndGrab'
    from 12.rb:137:in '<main>'
4

1 に答える 1