如何确保已单击该按钮?

How to make sure that button has been clicked?

有没有简单的方法来检查我的确定按钮是否被按下?大多数情况下它运行良好,但有 100 次失败:

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

不知道为什么。

要在按下按钮后收到通知,您可以通过

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

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

您可以使用它来验证是否也单击了按钮。在您输入 OnStartInvoke 之前调用调度程序中的按钮(有一定的超时)。