我正在尝试使用 CodeCharge 4.3 自动化在 Classic ASP 中实现的大型项目的构建/发布。
我知道 Classic ASP 是一种脚本语言,我们的应用程序本身并没有真正“编译”,但在发布过程中,CodeCharge ID 可以检测到已损坏的页面,不幸的是,这对我们来说是一个常见事件。我想将它连接到 TeamCity for CI。
CodeCharge 没有命令行界面,因此需要自动化 UI,
我一直在使用 .NET UIAutomation 类,并成功地让 IDE 加载、触发发布、从输出窗口捕获输出,然后退出。
为了触发发布,我使用http://inputsimulator.codeplex.com/发送 F9 按键。我对此并不完全满意,因为如果 CodeCharge 失去焦点,它就会倒下。有没有办法使用 UIAutomation 将 F9 按键发送到窗口,而不管它是否具有焦点?
发布也可以从工具栏、菜单或附加到树视图的上下文菜单中触发。我对这些中的任何一个都没有太多运气,因为这些元素似乎没有暴露出来。例如,使用inspect.exe,我可以找到工具栏(Name="Standard", Classname="CCSToolbarWindow"),但inspect.exe 或我的UIAutomation 应用程序都看不到它下面的任何内容。工具栏元素上唯一可用的模式 inspect.exe 是“IsLegacyIAccessiblePatternAvailable = True。我想我可能会在特定坐标处向工具栏发送左键单击事件,但这超出了我的范围。
我认为因为这个应用程序已经很老了,如果我要继续追求,我可能不得不看看非托管 UIAutomation 的东西,或者更深入地了解 Win32 API 或其他东西,但我希望有一个更简单的解决方案。