3 Stimmen

Bildschirmfoto mit Watir speichern

Ich verwende Watir mit Ruby on Rails.

Ich muss Screenshots von einigen Seiten mit Watir speichern. Ich habe es geschafft, die Seite, die ich öffnen möchte, in einem Browser anzuzeigen, kann aber den Screenshot noch nicht speichern. Hier ist mein Code:

@browser = Watir::Safari.new
folios_screenshot_path = Rails.root.join('screenshots/')
@page = Page.find(5)
cur_url = root_url + 'pages/' + @page.id.to_s
@browser.goto cur_url
@browser.div(:id => "page").wait_until_present
@browser.driver.save_screenshot(pagess_screenshot_path + '/' + @page.id.to_s + '.png')
@browser.close

In der Seite, die ich lade, gibt es ein div-Element mit der id 'page', und ich versuche, Watir warten zu lassen, bis dieses Element im Watir-Browser geladen ist. Aber in meinem Hauptbrowser erhalte ich den Fehler Seite kann nicht innerhalb von 10 Sekunden geladen werden und der Screenshot wird auch nicht gespeichert. Hat jemand eine Idee, was los ist?

4voto

Željko Filipin Punkte 54696

Es gibt mehrere watir-Perlen: watir (steuert den IE unter Windows), safariwatir (steuert Safari unter Mac), watir-webdriver (steuert alle gängigen Browser außer Safari unter allen gängigen Betriebssystemen).

Sie verwenden safariwatir gem, aber Sie versuchen, den Screenshot mit watir-webdriver's zu speichern driver.save_screenshot . Ich würde vorschlagen, dass Sie einen Screenshot mit Firefox machen.

Installieren Sie einfach watir-webdriver gem und ändern Sie

@browser = Watir::Safari.new

zu

@browser = Watir::Browser.new :ff

Weitere Informationen finden Sie in der kostenlosen Version meines Watir-Buches:

https://github.com/zeljkofilipin/watirbook/downloads

0voto

amjad Punkte 2726

Versuchen Sie folgende Browserklasse, das funktioniert bei mir.

Browser::BROWSER.driver.save_screenshot(screenshot)

( Referenz )

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X