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