有人知道如何在编码的UI中为测试设置超时吗?我知道你可以做Playback.PlaybackSettings.SearchTimeout = x,但我的测试是找到控件,发生的情况是它不能访问控件(因为UI的错误,但我不能更改UI,因为这不是我的项目)。在尝试单击控件时,测试正在循环,并且从未失败,我必须手动取消测试。
我需要我的测试在点击失败后继续运行。。。这是因为如果我在单击后将鼠标移出控件,UI将保持工作。因此,我需要单击控件(单击失败),然后移动鼠标并再次单击(这是解决bug的方法)。
所以
-How是否为播放中的特定操作设置超时时间?就像这样
Playback.PlaySettings.ActionTimeOut = 1000;
Mouse.Click(control, new Point (3,3));
Playback.PlaySettings.ResetToDefault;谢谢
发布于 2014-04-24 16:14:30
有意思的。在这些情况下,它应该抛出异常。我认为CUIT没有设置操作超时的功能,或者它隐藏在它的一个“不太容易访问”的类中。解决这个特性对我来说似乎是一个太大的麻烦。
我建议实现您使用的变通方法:单击按钮,而不关心结果。因此,只要找到按钮,将焦点设置在它或其顶层窗口上,获得其边界矩形,一个可单击的点,然后在该点上进行鼠标单击(然后在必要时再次移动鼠标)。类似于:
control.TopParent.SetFocus();
var point = control.GetClickablePoint();
var br = control.BoundingRectangle;
var pointToClick = new Point(br.X + point.X, br.Y + point.Y);
Mouse.Click(pointToClick);如果GetClickablePoint失败,请尝试
var pointToClick = new Point(br.X + br.Width / 2, br.Y + br.Height / 2);发布于 2014-05-06 01:54:09
要使测试在失败后继续运行,您可以使用:
Playback.PlaybackSettings.ContinueOnError = true;并让鼠标单击两次。
另一种解决办法是让鼠标单击按钮,在其旁边的空白区域中单击,然后再次单击该按钮。
如果bug与仍在处理的线程有任何关系,您也可以在单击之前使用:
Playback.PlaybackSettings.WaitForReadyLevel = WaitForReadyLevel.AllThreads;发布于 2014-05-25 19:10:02
您可以检查控件是否已启用或存在等。如果为假,则使用Assert.Fail( -> ),如果为真,则使用Mouse.Click(x,y)单击按钮。
https://stackoverflow.com/questions/23253904
复制相似问题