シナリオ
- find()で例外発生時にスクリーンショットとトレースバックを取得する。
- 保管先はc:\Logs
- スクリーンショットファイル名:yyyymmdd-hhmmss_画面キャプチャ.png
- トレースバックファイル名 :yyyymmdd-hhmmss_トレースバック.txt
サンプルコード
import datetime
import traceback
import shutil
# ログ保管パス
LOG_PATH = u"C:\\Logs\\"
# スクリーンショット
def screen_shot():
tmp = SCREEN.capture(SCREEN.getBounds()).getFile()
filename = datetime.datetime.today().strftime("%Y%m%d-%H%M%S") + u"_画面キャプチャ" + ".png"
shutil.move(tmp, LOG_PATH + filename)
# トレースバック
def get_traceback():
filename = datetime.datetime.today().strftime("%Y%m%d-%H%M%S") + u"_トレ-スバック" + ".txt"
with open(LOG_PATH + filename, "a") as f:
traceback.print_exc(file = f)
try:
find("sample.png").highlight(1)
except:
screen_shot()
get_traceback()
結果
トレースバック
Traceback (most recent call last):
File "C:\hoge.sikuli\hoge.py", line 20, in
find("sample.png").highlight(1)
FindFailed: FindFailed: sample.png: (82x52) seen at (212, 207) with 0.98 in R[0,0 1920x1080]@S(0)
Line 2287, in file Region.java