20

我正在寻找一种将宏录制与截图功能相结合的软件。

我们有一个包含许多屏幕截图的软件手册。当新版本的软件发布时,我们需要更新大部分屏幕截图,我们必须手动完成。现在我们开始将手册翻译成多种语言,截图数量增加了十倍。我们想自动化这个过程。

将有一个录制的宏或点击我们软件中的按钮并截取程序窗口的屏幕截图。更好的是,我们可以单独指定每个屏幕截图的名称,尽管它不太重要。

这样的事情存在吗?

4

7 回答 7

5

我将AutoItcaptdll.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)

通过这种方式,您可以自动化整个屏幕截图捕获过程:

  • 使用 Run 启动您的应用程序
  • 使用发送选择每个菜单选项
  • 也用发送完成每个屏幕的数据
  • 使用 DllCall("captdll.dll" ....) 捕获

您还可以添加条件逻辑、循环等。

于 2011-01-31T15:24:05.043 回答
2

是的。您需要自动化测试软件,它可以完成所有这些并测试您的产品。

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

于 2011-01-24T16:46:30.553 回答
2

Testing Anywhere似乎具有您需要的功能。他们网站上的一些话:

“强大的基于 GUI 的记录功能和无需编程的用户界面允许测试人员快速设置甚至复杂的测试用例” ...

“可视化日志报告:Testing Anywhere 强大的可视化选项在运行时截取屏幕截图以创建可视化日志。” (看这里)

您还可以尝试一些更简单且(更便宜!)的东西,例如Jitbit Macro Recorder,它可以让您播放录制的宏(键盘和鼠标),然后使用宏中的 Shift-PrintScreen 键来制作屏幕截图。它还有一个宏脚本编辑器。

于 2011-01-29T13:08:46.103 回答
2

如果它是一个 webapp,你可以使用Selenium。Visual Studio 有一个类似的工具,称为 Test Automation FX

于 2011-01-30T18:46:26.730 回答
2

Yoiu 可以查看现有的Windows 自动化 API:UI 自动化,MSDN 文档

运行时要求

以下操作系统支持 UI 自动化:Windows XP、Windows Server 2003、Windows Server 2003 R2、Windows Vista、Windows 7、Windows Server 2008 和 Windows Server 2008 R2。

客户端应用程序,从简单的测试脚本到强大的记录和回放实用程序,可能需要访问当前未实例化的元素,例如文件打开对话框或菜单项,因此在 UI 自动化树中不存在。这些元素只能通过使用 UI 自动化属性(如 AutomationID、控制模式和事件侦听器)再现或“回放”特定的用户界面 (UI) 操作序列来实例化。有关使用 Microsoft UI 自动化根据用户与用户界面 (UI) 的交互生成测试脚本的示例,请参阅测试脚本生成器示例。

您可以在现有的 Visual Studio 项目中使用AutomationIdProperty 。

在测试应用程序中实现 UI 自动化

  • 添加 UI 自动化参考。

此处列出了 UI 自动化客户端所需的 UI 自动化 dll。

UIAutomationClient.dll 提供对 UI 自动化客户端 API 的访问。

UIAutomationClientSideProvider.dll 提供自动化 Win32 控件的能力。请参阅标准控件的 UI 自动化支持。

UIAutomationTypes.dll 提供对 UI 自动化中定义的特定类型的访问。

  • 添加 System.Windows.Automation 命名空间。

此命名空间包含 UI 自动化客户端使用 UI 自动化功能所需的所有内容,但文本处理除外。

  • 添加 System.Windows.Automation.Text 命名空间。

此命名空间包含 UI 自动化客户端使用 UI 自动化文本处理功能所需的一切。

  • 查找感兴趣的控件

自动化测试脚本在自动化树中定位代表感兴趣控件的 UI 自动化元素。

有多种方法可以通过代码获取 UI 自动化元素。

使用 Condition 语句查询 UI。这通常是使用与语言无关的 AutomationIdProperty 的地方。注意 可以使用诸如 UISpy.exe (UI Spy) 之类的工具来获取 AutomationIdProperty,该工具能够逐项列出控件的 UI 自动化属性。

使用TreeWalker类遍历整个 UI 自动化树或其子集。

跟踪焦点。

使用控件的 hWnd。

使用屏幕位置,例如鼠标光标的位置。

请参阅获取 UI 自动化元素

  • 获取控制模式

控件模式为功能相似的控件公开了常见的行为。

找到需要测试的控件后,自动化测试脚本会从这些 UI 自动化元素中获取感兴趣的控件模式。例如,用于典型按钮功能的 InvokePattern 控件模式或用于窗口功能的 WindowPattern 控件模式。

请参阅 UI 自动化控制模式概述。

  • 自动化 UI

自动化测试脚本现在可以使用 UI 自动化控制模式公开的信息和功能从 UI 框架控制任何感兴趣的 UI。

相关工具和技术

有许多相关的工具和技术支持使用 UI 自动化进行自动化测试。

UISpy.exe (UI Spy)是一个图形用户界面 (GUI) 应用程序,可用于为提供者​​和客户端开发和调试收集 UI 自动化信息。UI Spy 包含在 Windows 软件开发工具包 (SDK) 中。

UIAutoCmd 是一个命令行工具,其功能类似于 UI Spy。

MSAABridge 向 Active Accessibility 客户端公开 UI 自动化信息。将 UI 自动化连接到 Active Accessibility 的主要目标是让现有的 Active Accessibility 客户端能够与任何已实现 UI 自动化的框架进行交互。安全

有关安全信息,请参阅 UI 自动化安全概述。

于 2011-01-31T06:55:44.900 回答
2

我尝试了很多,在我看来,真正脱颖而出的是Adob​​e(以前称为 Macromedia) Captivate。它非常昂贵(〜800美元)但值得每一分钱。

创建教程等需要几分钟而不是几小时。

于 2011-01-31T10:19:08.300 回答
0

我会使用开源工具 Sikuli。非常直接的脚本语言,或者您可以使用他们的类并编写自己的 java 代码。

这是获取屏幕一部分的文档:http: //sikuli.org/docx/screen.html#capturing

好处是它在 Windows、Linux 和 Mac 上受支持!

于 2011-01-31T15:25:41.073 回答