VS2013编码的UI测试鼠标点击对话框的关闭按钮有时无法关闭表格

时间:2015-05-20 23:58:24

标签: coded-ui-tests

我们有一个表格,在主表格上方显示为对话。 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);

有任何意见吗?

1 个答案:

答案 0 :(得分:2)

似乎对话框还没有完全准备好改变焦点对话框。 在焦点准备好之前,测试试图关闭它。 尝试使用以下代码。

Playback.PlaybackSettings.WaitForReadyLevel = WaitForReadyLevel.AllThreads;

此处WaitForReadyLevel.UIThreads选项也出现。

这会增加测试执行时间。