Ответ 1
Функция capture
, как в
screen = Screen()
file = screen.capture(screen.getBounds())
print("Saved screen as "+file)
Он берет снимок экрана, сохраняет его в файле и возвращает путь к этому файлу.
Подробнее см. документацию по Sikuli.
Я использую IDE Sikuli. Я хотел бы знать, что нужно сделать для скриншота, поэтому я могу захватить экран в конце теста.
Что-то вроде этого
try :
if bla bla bla:
print("blablabla")
else:
TAKESCREENSHOT() #------------------> What command do I put here?
print("TEST_FAILED")
Функция capture
, как в
screen = Screen()
file = screen.capture(screen.getBounds())
print("Saved screen as "+file)
Он берет снимок экрана, сохраняет его в файле и возвращает путь к этому файлу.
Подробнее см. документацию по Sikuli.
Дешевый трюк Sikuli для screencaps состоит в том, чтобы иметь определенную область, а затем захватить область.
Итак, если у вас есть браузер Chrome, который вы хотите закрыть, просто установите его примерно так:
App.focus('Chrome.app')
ChromeWindow = App('Chrome.app').window()
Это сфокусирует компьютер на целевом приложении и определит регион, состоящий из параметров окна приложения. Затем запустите это:
capture(ChromeWindow)
Затем используйте shutil (import shutil
), чтобы перемещать файл туда, где вам это нужно, в локальные каталоги. Обычно я помещаю этот код в функцию, которую я могу вызвать при необходимости TakePicture(Name)
, где Name
- это то, что я хочу назвать screencap при вызове в конкретном тесте. Сикули - мощный и легкий!
Чтобы сделать скриншот окна, в котором есть фокус, вы можете просто:
focusWindow = App.focusedWindow()
regionImage = capture(focusWindow)
shutil.move(regionImage, os.path.join(r'C:\Screenshots', 'Dummy1.png'))