CodedUI测试:Keyboard.SendKeys不工作

我正在尝试使用Visual Studio 2010的CodedUI测试function。我在重播我的一个html组件的各种操作时遇到了问题。 生成的Keyboard.SendKeys不起作用(如果没有输入)。

生成的代码是:

// Type '{F4}{F4}{F2}titre{Enter}' in 'SaisieSD_DS' custom control Keyboard.SendKeys(uISaisieSD_DSCustom, this.Params.UISaisieSD_DSCustomSendKeys, ModifierKeys.None); 

如果我通过调用System.Windows.Forms.SendKeys.SendWait替换对Keyboard.SendKeys的调用,它确实有效。

由于失去焦点,我正在考虑一个问题。 但是,如果我执行类似uISaisieSD_DSCustom.SetFocus() ,则不会更改行为。

你有什么主意吗 ?

谢谢。

你有没有尝试过

 uISaisieSD_DSCustom.WaitForReady() 

或者其他一个等待者?

它在这条线上失败了吗? 或者由于这种方法不正常而失败了吗?

在继续之前,您还可以使用以下内容等待所有线程完成:

 Playback.PlaybackSettings.WaitForReadyLevel = WaitForReadyLevel.AllThreads; Keyboard.SendKeys(uISaisieSD_DSCustom, this.Params.UISaisieSD_DSCustomSendKeys, ModifierKeys.None); Playback.PlaybackSettings.WaitForReadyLevel = WaitForReadyLevel.UIThreadOnly; 

只需确保包含最后一行将其重新设置为UIThreadOnly,否则它将减慢一切。

Visual Studio CodedUI Test搜索控件并将这些键发送给它。 在您的情况下,控件是’uISaisieSD_DSCustom’。 您可以尝试使用:

 Keyboard.SendKeys(this.Params.UISaisieSD_DSCustomSendKeys); 

要么

 Keyboard.SendKeys("{F4}{F4}{F2}titre{Enter}"); 

如果我们想要发送回车键,输入URL后,下面的代码在Coded UI中工作

 Keyboard.SendKeys("{Enter}");