Jak mogę zapisać obrazy witryny za pomocą watir, bez ponownego ładowania ich za pomocą open-uri lub podobnego?Zapisywanie obrazów z witryny internetowej (z watir)
I: Powód, dla którego nie mogę używać
File.open(file_name, 'wb') do |f|
f.write open(img.src).read
end # file open
to, że obrazy są generowane w bieżącej sesji (login-) i tylko raz, więc „zewnętrznym” 2nd dostęp nie jest możliwy .
II: browser.images.save()
- tylko dla ie - nie jest pomocne, otwiera okno dialogowe zapisywania. Jest więc tak bezużyteczny dla automatyzacji.
Przykłady: http://wiki.openqa.org/display/WTR/Save+All+Images+on+a+Webpage
require 'watir'
browser = Watir::Browser.new :ie
browser.goto 'http://google.com'
idx = 0
browser.images.each do |x|
puts idx
idx += 1
location = 'c:\tmp\file-' + idx.to_s + '.jpg'
x.save(location)
end
źródłowe github: http://rubydoc.info/github/watir/watir-classic/Watir/Image
# File 'lib/watir-classic/image.rb', line 48
def save(path)
@container.goto(src)
begin
fill_save_image_dialog(path)
@container.document.execCommand("SaveAs")
ensure
@container.back
end
end
Mój najlepszy pomysł atm jest, aby pobrać wszystkie obrazy za pomocą pełnomocnika. Ale może jest "watir-way".
Środowisko:
# ruby 1.9.3p125 (2012-02-16) [i386-mingw32]
# watir (4.0.2 x86-mingw32)
# watir-classic (3.6.0, 3.5.0, 3.4.0)
# watir-webdriver (0.6.4, 0.6.2)
Edit: Zdaję sobie sprawę, że istnieją różne sposoby, aby uzyskać obrazy ze strony internetowej, bez wypadku myślenia mogę zbudować listę Mając tak wiele rozwiązań, ale jego zamiar rozwiązać problem z watir.
Dlaczego 'browser.image.save (plik)' jest bezużyteczne? Metoda otwiera dialog zapisu, wprowadza wymagane pola i zapisuje plik (np. Dialog jest również zautomatyzowany). Czy masz na myśli, że nie jest to pomocne, ponieważ jest tylko dla IE i musisz użyć innej przeglądarki? –
W moim przypadku otwiera okno dialogowe zapisu i czeka. Jak opisano w instrukcji, co powinno się zdarzyć tylko wtedy, gdy plik istnieje, ale tak nie jest (pusty katalog i nazwa pliku losowego) – inselberg
To jest dziwne. Nie napotkam żadnych problemów z zapisaniem obrazu jako nowego pliku. –