0

我正在尝试为 ui 按钮添加自动化事件处理程序。我已经在桌面应用程序上进行了测试,它可以正常工作,但网页中的按钮有问题。事实上,我可以使用 InvokePattern.Invoke() 调用它们,但之后我看不到处理程序工作!
这是我的代码:

if ((wantedElement != null))
                    {
                        element = wantedElement;
                        buttonEvent = new AutomationEventHandler(close_event);
                      Automation.AddAutomationEventHandler(InvokePattern.InvokedEvent, element,TreeScope.Element,buttonEvent );

                        object pattern;
                        if (wantedElement.TryGetCurrentPattern(InvokePattern.Pattern, out pattern))
                        {

                            InvokePattern invokePattern = (InvokePattern)pattern;
                            invokePattern.Invoke();                                
                        }                            
                    }

...

private static void close_event(object sender, AutomationEventArgs e)
    {
        AutomationElement sourceElement;
        try
        {
            sourceElement = sender as AutomationElement;
            Console.WriteLine("button try");
        }
        catch (ElementNotAvailableException)
        {
            return;
        }
        if (e.EventId == InvokePattern.InvokedEvent)
        {
            // TODO Add handling code.
            Console.WriteLine("button invoked");
        }
        else
        {
            // TODO Handle any other events that have been subscribed to.
            Console.WriteLine("button event");                
        }

    }
4

0 回答 0