我在WPF、Visual 2013中使用CodedUI,使用内置工具和手写测试的组合。
我试图点击弹出窗口上的一个基本按钮。我有类似的窗口,运行良好,从外部库,但这是我自己的。
Mouse.Click(UIMap.StubWindow.OK);这会产生一个错误,因为它找不到OK按钮。另外打电话:
UIMap.StubWindow.DrawHighlight();也失败,无法找到窗口。但是,有时它会在Windows中的Start Button周围绘制大纲。奇怪的是,在调用FindMatchingControls()之后,以下两行都正确工作。
UIMap.StubWindow.FindMatchingControls();
UIMap.StubWindow.DrawHighlight();
Mouse.Click(UIMap.StubWindow.OK);问题是,执行FindMatchingControls需要花费大约5-10秒的时间,因为它必须搜索系统上的所有顶级窗口。即使在匹配一扇窗户之后。调用Find();不工作。不管怎么奇怪,
var x = UIMap.StubWindow.FindMatchingControls().Count;X是1。
这样做是有原因的,还是我不需要打电话给FindMatchingControls?我尝试过将搜索配置更改为始终同时搜索窗口和OK按钮,但这是行不通的。
SearchProperties依赖于AutomationId和Framework,它们都使用EqualsTo运算符。
即使直接从测试构建器中使用,这也不起作用。我只发现FindMatchingControls使它在调试时工作,检查是否有歧义。
发布于 2015-09-07 15:49:14
把这个修好。现在看来很明显,但是弹出窗口写得很快,没有标题。
没有注意到/认为这很重要,但有相当大的影响。添加标题并再次设置UIMap,并且工作正常。
发布于 2015-09-04 19:01:46
您是否尝试过使用UIMap定义控件w/o?像这样吗?:
var app = new ApplicationUnderTest();
var x = new UITestControl(app);
x.SearchProperties.Add("Key","Value");
x.SearchProperties.Add("Key","Value");
x.SearchProperties.Add("Key","Value");
Mouse.Click(x,x.GetClickablePoint());https://stackoverflow.com/questions/32374409
复制相似问题