2013-05-25 4 views
11

Ich benutze Sikuli IDE. Ich würde gerne wissen, was der Befehl ist, um einen Screenshot zu machen, damit ich den Bildschirm am Ende eines Tests erfassen kann.Was ist der Befehl, ein Bild in Sikuli zu machen

So etwas wie dieses

try : 
    if bla bla bla: 
    print("blablabla") 
    else: 
    TAKESCREENSHOT() #------------------> What command do I put here? 
    print("TEST_FAILED") 

Antwort

13

Die Funktion ist capture, wie in

screen = Screen() 
file = screen.capture(screen.getBounds()) 
print("Saved screen as "+file) 

Es dauert ein Screen-Shot, speichert sie in einer Datei, und gibt Ihnen den Weg zu, dass Datei zurück.

Weitere Informationen finden Sie unter Sikuli documentation on it.

+1

. Wenn ein automatischer Screenshot benötigt wird, müssen die Koordinaten angegeben werden: screen.capture (screen.x, screen.y, screen.w, screen.h) – kel

+0

@kel danke für den Haken. Behoben, dass es sich um eine nicht interaktive Ganzbildaufnahme handelt. –

4

Billig Sikuli Trick für Screencaps ist eine definierte Region haben, dann erfassen Sie die Region.

Also, wenn Sie einen Chrome-Browser haben Sie deckeln wollen, setzen Sie es nur in etwa so hoch:

App.focus('Chrome.app') 

ChromeWindow = App('Chrome.app').window() 

, dass beide den Computer an die Zielanwendung konzentrieren, und einen Bereich definieren, bestehend aus die Fensterparameter der Anwendung. Dann folgt ausführen:

capture(ChromeWindow) 

Dann nutzen shutil (import shutil), um die Datei zu bewegen, wo immer Sie es in Ihrem lokalen Verzeichnisse müssen. Normalerweise setze ich diesen Code-Stapel in eine Funktion, die ich bei Bedarf anrufen kann TakePicture(Name) wo Name ist, was ich die Screencap aufrufen möchte, wenn in einem bestimmten Test aufgerufen. Sikuli ist sowohl mächtig als auch einfach!

0

Um einen Screenshot des Fensters, die Sie einfach verwenden können, den Fokus hat:

Dadurch wird die manuelle Screen-Capture-Bildschirm starten
focusWindow = App.focusedWindow() 
regionImage = capture(focusWindow) 
shutil.move(regionImage, os.path.join(r'C:\Screenshots', 'Dummy1.png'))