有没有一种简单的方法来检查我的OK按钮是否被按下了?大部分时间它都运行得很好,但是百分之一失败了:
AutomationElement rl = SomeMethod();
if (rl.Current.Name == "OK" && rl.Current.ControlType == ControlType.Button)
{
InvokePattern click = (InvokePattern)rl.GetCurrentPattern(InvokePattern.Pattern);
click.Invoke();
}
我想知道为什么。
答案 0 :(得分:1)
要在按下按钮后收到通知,您可以通过
注册AutomationEventHandlerAutomation.AddAutomationEventHandler(InvokePattern.InvokedEvent, AutomationElement yourAE,TreeScope.Element, new AutomationEventHandler(OnStartInvoke));
private static void OnStartInvoke(object src, AutomationEventArgs e)
{
//logic
}
您可以使用它来验证按钮是否也被点击过。调用调度程序中的按钮(具有一定的超时),直到您输入OnStartInvoke。