2015-08-26 72 views
0

有没有简单的方法来检查我的确定按钮是否被按下?大多数时候它工作得很好,但100分之1失败:如何确保按钮已被点击?

AutomationElement rl = SomeMethod(); 
if (rl.Current.Name == "OK" && rl.Current.ControlType == ControlType.Button) 
{ 
    InvokePattern click = (InvokePattern)rl.GetCurrentPattern(InvokePattern.Pattern); 
    click.Invoke(); 
} 

我想知道为什么。

回答

1

要获得通知后您的按钮被按下,您可以通过

Automation.AddAutomationEventHandler(InvokePattern.InvokedEvent, AutomationElement yourAE,TreeScope.Element, new AutomationEventHandler(OnStartInvoke)); 

private static void OnStartInvoke(object src, AutomationEventArgs e) 
{ 
    //logic 
} 

注册一个AutomationEventHandler您可以使用此为了验证该按钮被点击也。调用调度程序中的按钮(有一定的超时时间),直到您输入OnStartInvoke。