代码之家  ›  专栏  ›  技术社区  ›  LB40

CodedUI测试:键盘.SendKeys不起作用

  •  1
  • LB40  · 技术社区  · 14 年前

    我正在尝试使用VisualStudio2010的CodedUI测试功能。 我在重放某个html组件的各种操作时遇到问题。这个键盘.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 ,确实有效。

    uISaisieSD_DSCustom.SetFocus() ,它不会改变行为。

    你知道吗?

    谢谢。

    3 回复  |  直到 14 年前
        1
  •  1
  •   NiftyNinjanator    12 年前

    你试过了吗

    uISaisieSD_DSCustom.WaitForReady()
    

    或者其他的侍者?

    在这条线上失败了吗?或者是因为它不能正常工作而导致后来的故障?

    您还可以使用以下命令等待所有线程完成后再继续:

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

    只需确保包含最后一行就可以将其返回到UIThreadOnly,否则会让一切都慢下来。

        2
  •  0
  •   Paulius Zaliaduonis    13 年前

    VisualStudioCodeDui测试搜索控件并将这些键发送给它。在您的情况下,控件是“uisaisesd\DSCustom”。 您可以尝试使用:

    Keyboard.SendKeys(this.Params.UISaisieSD_DSCustomSendKeys);
    

    Keyboard.SendKeys("{F4}{F4}{F2}titre{Enter}");
    
        3
  •  -1
  •   Soner Gönül to StackOverflow    11 年前

    在输入URL之后,如果我们想发送enter键,那么下面的代码在编码的UI中工作

    Keyboard.SendKeys("{Enter}");