UI Automation-InvokePattern

来源:互联网 发布:mac spss许可证 编辑:程序博客网 时间:2024/05/21 06:42

 感谢原作者的分享  http://blog.csdn.net/lynn_yan/article/category/611860


InvokePattern用于可被调用的控件,如按钮。Used to support controls that do not maintain state when activated but rather initiate or perform a single, unambiguous action, such as a button.

封装如下代码:

        public static InvokePattern GetInvokePattern(AutomationElement element)

        {

            object currentPattern = null;

            if (!element.TryGetCurrentPattern(InvokePattern.Pattern, out currentPattern))

            {

                Log.Error(string.Format("Element with AutomationId '{0}' and Name '{1}' does not support the InvokePattern.",

    element.Current.AutomationId, element.Current.Name));

                throw new Exception(string.Format("Element with AutomationId '{0}' and Name '{1}' does not support the InvokePattern.",

                    element.Current.AutomationId, element.Current.Name));

            }

            return currentPattern as InvokePattern;

        }

 

            //Get the button element

            AutomationElement button = AutomationElementSearch.FindElementById(window, "button1");

            Assert.IsNotNull(button);

            Thread.Sleep(1000);

 

            //Click the button

            InvokePattern invokepattern = Invokepattern.GetInvokePattern(button);

            Assert.IsNotNull(invokepattern);

            invokepattern.Invoke();

            Thread.Sleep(1000);


0 0
原创粉丝点击