【问题标题】:How can I detect objects within canvas of gojs in codedui?如何在 codedui 中检测 gojs 画布内的对象?
【发布时间】:2016-03-25 14:58:00
【问题描述】:
最近我被指派对一个具有 GoJS 画布的应用程序进行自动化测试。在测试中的应用程序(AUT)中,用户可以在 GoJS 的画布上拖放不同的对象。
我的目标是对 AUT 的功能进行自动化测试。但是我在检测画布内的对象时遇到了问题。
有什么方法可以从 Microsoft 的 Codedui 框架中获取拖放到画布上的对象属性的详细信息?我有 Visual Studio 2015 企业版。
【问题讨论】:
标签:
canvas
coded-ui-tests
gojs
【解决方案1】:
我假设您已经了解 BrowserWindow.ExecuteScript。
我不知道你有什么情况——你的应用做了什么以及你需要测试什么。基本上,您需要执行以下开头的 JavaScript:
var diagramDiv = document.getElementById("myDiagramDiv");
var diagram = go.Diagram.fromDiv(diagramDiv);
然后做任何它需要使用GoJSAPI。一些简单的可能性包括:
return diagram.nodes.count;
或
return diagram.findPartAt(new go.Point(120, 76), true) !== null;
或
return diagram.model.findNodeDataForKey("abc").someProperty;
或任意更复杂的计算来查看图表或图表模型的状态。事实上,您可以用 JavaScript 编写所有测试并返回总结结果的内容。