我们有一个表格,在主表格上方显示为对话。 DialogResult rslt = cvForm.ShowDialog();
在Coded UI测试中,当对话被推出时,Mouse.Click会尝试通过单击表单的“x”按钮来关闭它。 但是,似乎x按钮有时无法响应click事件,在某台机器上它总是无法关闭Form,除非我们在点击之前等待。 所有WaitForControlxxx()都不会作为等待,因为它们会立即返回。 仅在点击工作之前放置PlayWait(1000)并且可以关闭表单。 故障只发生在我们的实验室机器上。在我的笔记本电脑上,即使没有PlayWait(1000),也能正常工作。 似乎这只是一个时间问题。 有什么我可以等待而不是盲目地等待1秒才能在实验室机器上工作吗?
//this.UIAUDIO_TX_HPF_IIRWindow refers to the Form shown as a Dialogue:
// this.UIAUDIO_TX_HPF_IIRWindow
//ulCloseButton refers to the "x" button on the Form:
WinButton uICloseButton = this.UIAUDIO_TX_HPF_IIRWindow.UIAUDIO_TX_HPF_IIRTitleBar.UICloseButton;
以下代码无法关闭我们实验室机器上的WinForm窗口,但可以在笔记本电脑上关闭它:
uICloseButton.WaitForControlExist();
uICloseButton.WaitForControlReady();
uICloseButton.WaitForControlEnabled();
this.UIAUDIO_TX_HPF_IIRWindow.WaitForControlReady();
//Mouse.Click(uICloseButton, new Point(15, 9));
Mouse.Click(uICloseButton);
以下代码可以关闭我们实验室机器上的WinForm窗口:
Playback.Wait(1000);
Mouse.Click(uICloseButton);
有任何意见吗?
答案 0 :(得分:2)
似乎对话框还没有完全准备好改变焦点对话框。 在焦点准备好之前,测试试图关闭它。 尝试使用以下代码。
Playback.PlaybackSettings.WaitForReadyLevel = WaitForReadyLevel.AllThreads;
此处WaitForReadyLevel.UIThreads
选项也出现。
这会增加测试执行时间。