我正在等待控件存在,但测试在按钮存在之前失败。
它给出错误:The control is not available or not valid
我正在使用的代码是:
uIOKButton.WaitForControlExist(2000000);
// Click 'OK' button
Mouse.Click(uIOKButton, new Point(46, 19));
超时,即使我将它设置为3小时,但在30分钟后超时。所以超时不按照预期的方式运行。不管怎么说呢?
除了增加超时之外,还有什么能阻止它失败吗?
答案 0 :(得分:1)
我是这样做的:
while (!uIItemComboBox.Exists)
{
System.Threading.Thread.Sleep(1000);
}
uIItemComboBox.SelectedItem = this.MyComboBox.UIItemComboBoxSelectedItem;
我确信有更好的方法,但它确实有效。
答案 1 :(得分:0)
我建议你添加一个支票:
int count = 1;
while (btnExists() == false){
if (count > 1000) {
//fail test or say that btn is not available
}
count ++;
wait (1);
}
您不必等待超过必要的时间。只要btn可用,测试将继续进行。但是请务必将“count”设置为在某个时间有一个退出点,以防btn永远不会出现
答案 2 :(得分:0)
您可以使用while循环而不是if语句
代码看起来像这样
loopcyle = 1;
While(!uIOKButton.WaitForControlExist(2000) && loopcycle <=20)
{
// Click 'OK' button
Mouse.Click(uIOKButton, new Point(46, 19));
loopcycle ++;
break;
}
谢谢, Karthik KK
答案 3 :(得分:0)
你原来做的是正确的做法。 但是30分钟后会弹出默认测试超时。
在Solution Items文件夹下的测试解决方案中,找到local.testsettings
双击它,转到超时并删除30分钟的默认超时。
答案 4 :(得分:0)
您可能还想尝试WaitForControlReady
。
答案 5 :(得分:0)
使用Timeout
属性使任何特定测试变为无限。如果您知道测试将一直运行到该时间,也可以指定一个特定的时间。
[Timeout(TestTimeout.Infinite)]
答案 6 :(得分:0)
尝试此操作,然后找到控件ID,这对我来说很成功,但这将花费一些时间。因此,如果您想提早加载,请寻找替代方法。
BrowserWindow window = new BrowserWindow();
window.WaitForControlExist();