Какая команда сделать снимок в Сикули

Я использую IDE Sikuli. Я хотел бы знать, что нужно сделать для скриншота, поэтому я могу захватить экран в конце теста.

Что-то вроде этого

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

Ответ 1

Функция capture, как в

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

Он берет снимок экрана, сохраняет его в файле и возвращает путь к этому файлу.

Подробнее см. документацию по Sikuli.

Ответ 2

Дешевый трюк Sikuli для screencaps состоит в том, чтобы иметь определенную область, а затем захватить область.

Итак, если у вас есть браузер Chrome, который вы хотите закрыть, просто установите его примерно так:

App.focus('Chrome.app')

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

Это сфокусирует компьютер на целевом приложении и определит регион, состоящий из параметров окна приложения. Затем запустите это:

capture(ChromeWindow)

Затем используйте shutil (import shutil), чтобы перемещать файл туда, где вам это нужно, в локальные каталоги. Обычно я помещаю этот код в функцию, которую я могу вызвать при необходимости TakePicture(Name), где Name - это то, что я хочу назвать screencap при вызове в конкретном тесте. Сикули - мощный и легкий!

Ответ 3

Чтобы сделать скриншот окна, в котором есть фокус, вы можете просто:

focusWindow = App.focusedWindow()
regionImage = capture(focusWindow)
shutil.move(regionImage, os.path.join(r'C:\Screenshots', 'Dummy1.png'))