Подтвердить что ты не робот

Автоматически снимать скриншоты окна программы

Я ищу программное обеспечение, которое сочетает в себе макросъемку с возможностями снятия скриншотов.

У нас есть руководство по программному обеспечению с несколькими скриншотами. Когда выпущена новая версия программного обеспечения, нам нужно обновить большинство скриншотов, и мы должны сделать это вручную. Теперь мы начали переводить руководство на несколько языков, и количество снимков экрана увеличилось в десять раз. Мы хотели бы автоматизировать этот процесс.

Будет записан макрос или что-то, что нажимает кнопку в нашем программном обеспечении и делает скриншоты окна программы. Еще лучше, мы можем указать имя каждого снимка экрана отдельно, хотя это менее важно.

Существует ли такая вещь?

4b9b3361

Ответ 1

Я использую AutoIt плюс captdll.dll для всех задач автоматизации Windows GUI.

Пример:

Run("Notepad.exe", @WindowsDir, @SW_MAXIMIZE)   ; Open NOTEPAD
Sleep(1000)
Send("Just a Test")   ; Send some text to notepad

; Save the screen to test.jpg  
$anPos = WinGetClientSize("")
$nLeft = 0
$nTop = 0
$nRight = $anPos[0]
$nBottom = $anPos[1]

$sFileName = "test.jpg"
DllCall("captdll.dll", "int:cdecl", "CaptureScreen", "str", $sFileName, "int", 85)

Таким образом, вы можете автоматизировать весь процесс захвата экрана:

  • Запустите приложение с помощью
  • выберите каждый из параметров вашего меню с помощью Отправить
  • заполнить все данные экрана также с помощью Отправить
  • захват с помощью DllCall ( "captdll.dll"....)

Вы также можете добавить условную логику, цикл и т.д.

Ответ 2

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

http://en.wikipedia.org/wiki/List_of_GUI_testing_tools

Ответ 3

Тестирование в любом месте, похоже, имеет необходимую функциональность. Некоторые слова с их сайта:

"Мощные возможности записи на основе графического интерфейса и не требующий программирования пользовательский интерфейс позволяют тестировщикам быстро настроить даже сложные тестовые примеры"...

"Отчеты визуальных журналов: проверка возможности Anywheres с мощным визуализацией делает скриншоты для создания визуальных журналов во время выполнения". (см. здесь)

Вы также можете попробовать что-то более простое и (дешевле!), например Jitbit Macro Recorder, позволяющее воспроизводить записанный макрос (клавиатура и мышь)), а затем используйте клавишу Shift-PrintScreen в макросе для создания скриншотов. Он также имеет макрокоманд script.

Ответ 4

Если это webapp, вы можете использовать Selenium. Аналогичные инструменты для Visual Studio называются Test Automation FX

Ответ 5

Yoiu может изучить существующие API автоматизации Windows: Автоматизация пользовательского интерфейса, документация MSDN

Требования времени выполнения

Автоматизация пользовательского интерфейса поддерживается в следующих операционных системах: Windows XP, Windows Server 2003, Windows Server 2003 R2, Windows Vista, Windows 7, Windows Server 2008 и Windows Server 2008 R2.

Клиентские приложения, от простых тестовых скриптов до надежных утилит записи и воспроизведения, могут потребовать доступа к элементам, которые в настоящее время не созданы, например, диалог открытия файла или элемент меню и, следовательно, не существует в дереве автоматизации пользовательского интерфейса. Эти элементы могут быть созданы только путем воспроизведения или "воспроизведения" определенной последовательности действий пользовательского интерфейса (UI) с использованием свойств автоматизации UI, таких как AutomationID, шаблонов управления и прослушивателей событий. См. Тест Script Пример генератора для примера, который использует Microsoft UI Automation для генерации тестовых скриптов на основе взаимодействия пользователя с пользовательским интерфейсом (UI).

Вы можете использовать AutomationIdProperty в существующем проекте Visual Studio.

Внедрение автоматизации пользовательского интерфейса в тестовом приложении

  • Добавьте ссылки для автоматизации пользовательского интерфейса.

Здесь перечислены необходимые для клиентов UI Automation библиотеки UI Automation.

UIAutomationClient.dll предоставляет доступ к клиентским API-интерфейсам пользовательского интерфейса.

UIAutomationClientSideProvider.dll предоставляет возможность автоматизировать элементы управления Win32. См. Поддержка автоматизации пользовательского интерфейса для стандартных элементов управления.

UIAutomationTypes.dll предоставляет доступ к определенным типам, определенным в автоматизации пользовательского интерфейса.

  • Добавьте пространство имен System.Windows.Automation.

Это пространство имен содержит все, что клиенты UI Automation должны использовать возможности автоматизации пользовательского интерфейса, кроме обработки текста.

  • Добавьте пространство имен System.Windows.Automation.Text.

Это пространство имен содержит все, что клиенты автоматизации пользовательского интерфейса должны использовать возможности обработки текста UI Automation.

  • Найти интересующие элементы управления

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

Существует несколько способов получения элементов автоматизации пользовательского интерфейса с кодом.

Запросить пользовательский интерфейс с помощью оператора Condition. Обычно это означает, что используется языковой нейтраль AutomationIdProperty. Заметка AutomationIdProperty может быть получен с помощью инструмента, такого как UISpy.exe(UI Spy), который может детализировать свойства автоматизации пользовательского интерфейса элемента управления.

Используйте класс TreeWalker для перемещения по всему дереву автоматизации пользовательского интерфейса или его подмножеству.

Следить за фокусом.

Используйте hWnd элемента управления.

Используйте расположение экрана, например местоположение курсора мыши.

См. Получение элементов автоматизации пользовательского интерфейса

  • Получить шаблоны управления

Управляющие шаблоны выставляют общее поведение для функционально аналогичных элементов управления.

После определения элементов управления, требующих тестирования, автоматические тестовые скрипты получают контрольные образцы, представляющие интерес, из этих элементов автоматизации пользовательского интерфейса. Например, шаблон управления InvokePattern для типичной функциональности кнопок или шаблон управления WindowPattern для функций окна.

См. Обзор шаблонов управления автоматизацией пользовательского интерфейса.

  • Автоматизация пользовательского интерфейса

Автоматизированные тестовые сценарии теперь могут контролировать любой пользовательский интерфейс, представляющий интерес, из инфраструктуры пользовательского интерфейса, используя информацию и функциональные возможности, отображаемые шаблонами управления пользовательским интерфейсом.

Связанные инструменты и технологии

Существует ряд связанных инструментов и технологий, которые поддерживают автоматическое тестирование с помощью автоматизации пользовательского интерфейса.

UISpy.exe(UI Spy) - приложение графического интерфейса пользователя (GUI), которое может использоваться для сбора информации об автоматизации пользовательского интерфейса для обоих поставщиков и разработка и отладка клиентов. UI Spy входит в комплект разработки программного обеспечения для Windows (SDK).

UIAutoCmd - это инструмент командной строки с возможностями, похожими на UI Spy.

MSAABridge предоставляет информацию об автоматизации пользовательского интерфейса для клиентов Active Accessibility. Основная задача - объединение возможностей UI Automation в Active Accessibility - позволяет существующим клиентам Active Accessibility взаимодействовать с любой инфраструктурой, которая реализовала автоматизацию пользовательского интерфейса. Безопасность

Сведения о безопасности см. в разделе Обзор безопасности автоматизации пользовательского интерфейса.

Ответ 6

Я пробовал много, и тот, который действительно выделяется, на мой взгляд, Adobe (ранее Macromedia) Captivate. Это ужасно дорого (~ 800 $), но стоит каждого пенни.

Создание учебников и т.д. требует минут вместо часов.

Ответ 7

Я бы использовал инструмент Open Source Sikuli. Довольно прямой язык сценариев, или вы можете использовать их классы и написать свой собственный Java-код.

Вот документация, чтобы захватить часть экрана: http://sikuli.org/docx/screen.html#capturing

Бонус в том, что он поддерживается в Windows, Linux и Mac!