色女孩综合网_天天做天天添婷婷我也去 _日韩视频高清_草草影院免费

完善主體資料,免費贈送VIP會員!
* 主體類型
* 企業名稱
* 信用代碼
* 所在行業
* 企業規模
* 所在職位
* 姓名
* 所在行業
* 學歷
* 工作性質
請先選擇行業
您還可以選擇以下福利:
行業福利,領完即止!

下載app免費領取會員

NULL

ad.jpg

二次開發教程:C# 初探UI Automation

發布于:2019-07-24 16:45:29

網友投稿

更多

最近研究自動化測試,看了一下UI Automation的微軟例子,表示太老了,遇到各種問題,


UI Spy 好像已經被放棄了,可以用inspect.exe來代替,win10 的路徑為:"C:\Program Files (x86)\Windows Kits\8.1\bin\x64\inspect.exe"


這個用來查詢automationId,


官網是以計算器例子,下面是在win10 修改后能運行版本




    class CalcAutomationClient

    {


         AutomationElement calWindow = null;//計算器窗口主窗口元素



         string resultTextAutoID = "CalculatorResults";

         string btn5AutoID = "num5Button";

         string btn3AutoID = "num3Button";

         string btn2AutoID = "num2Button";

         string btnPlusAutoID = "plusButton";

         string btnSubAutoId = "94";

         string btnEqualAutoID = "equalButton";

        static void Main(string[] args)

        {

            CalcAutomationClient autoClient = new CalcAutomationClient();

            AutomationEventHandler eventHandler = new AutomationEventHandler(autoClient.OnWindowOpenOrClose);

            Automation.AddAutomationEventHandler(WindowPattern.WindowOpenedEvent, AutomationElement.RootElement, TreeScope.Children, eventHandler);

            Process.Start("calc.exe");

            Console.ReadLine();

        }


        private void OnWindowOpenOrClose(object sender, AutomationEventArgs e)

        {

            if (calWindow != null)

                return;

            if(e.EventId!=WindowPattern.WindowOpenedEvent)

            {

                return;

            }

            if(sender ==null)

            {

                Console.WriteLine("sender is null");

                return;

            }

            Thread.Sleep(1000);//此處必須等待一下,應該是計算器的等待計算器完全加載,不然控件 找不到

            AutomationElement sourceElement = null;

            sourceElement = sender as AutomationElement;

            Console.WriteLine(sourceElement.Current.Name);

            try

            {

                sourceElement = sender as AutomationElement;

                Console.WriteLine(sourceElement.Current.Name);

                if (sourceElement.Current.Name=="計算器")

                {

                    calWindow = sourceElement;

                }

            }

            catch(Exception ex)

            {

                Console.WriteLine("ex:" + ex.Message);

                return;

            }

            if(calWindow == null)

            {

                return;

            }

            ExcuteTest();

        }

        private  void ExcuteTest()

        {

            ExcuteButtonInvoke(btn2AutoID);

            ExcuteButtonInvoke(btnPlusAutoID);

            ExcuteButtonInvoke(btn3AutoID);

            ExcuteButtonInvoke(btnEqualAutoID);

            string rs = GetCurrentResult();

            Console.WriteLine(rs);

        }

        private  void ExcuteButtonInvoke(string automationId)

        {

            Condition conditions = new AndCondition(

                new PropertyCondition(AutomationElement.AutomationIdProperty,automationId),

                new PropertyCondition(AutomationElement.ControlTypeProperty,ControlType.Button));

            if (calWindow == null)

                return;

            AutomationElementCollection collection = calWindow.FindAll(TreeScope.Descendants, conditions);

            if (collection == null || collection.Count == 0)

                return;

            AutomationElement btn = collection[0];

            if (btn != null)

            {

                InvokePattern invokeptn = (InvokePattern)btn.GetCurrentPattern(InvokePattern.Pattern);

                invokeptn.Invoke();

            }

            Thread.Sleep(1000);

        }

        private string GetCurrentResult()

        {

            Condition conditions = new AndCondition(

                new PropertyCondition(AutomationElement.AutomationIdProperty, resultTextAutoID),

                new PropertyCondition(AutomationElement.ControlTypeProperty,ControlType.Text));

            AutomationElement text = calWindow.FindAll(TreeScope.Descendants, conditions)[0];

            return text.Current.Name;

        }

    }

本文版權歸腿腿教學網及原創作者所有,未經授權,謝絕轉載。

未標題-1.jpg

上一篇:二次開發教程:C# 動態生成程序集

下一篇:二次開發教程:C# 反射性能

60acb4e0ef112.png
色女孩综合网_天天做天天添婷婷我也去 _日韩视频高清_草草影院免费

    9000px;">

      久久这里都是精品| 亚洲人成7777| 午夜欧美大尺度福利影院在线看| 色综合中文字幕国产 | 欧美成人三级电影在线| 蜜臀av亚洲一区中文字幕| 久久一夜天堂av一区二区三区| 久草精品在线观看| 久久婷婷成人综合色| 91麻豆免费在线观看| 亚洲一区免费在线观看| 欧美r级在线观看| 国内精品伊人久久久久影院对白| 久久综合99re88久久爱| 91在线精品一区二区| 久久精品国产一区二区三区免费看| 久久精品一区蜜桃臀影院| 欧美日韩的一区二区| 成人一区二区三区视频在线观看| 亚洲一区影音先锋| 久久麻豆一区二区| 91麻豆视频网站| 国产一区二区不卡在线| 日本女优在线视频一区二区| 亚洲色图另类专区| 久久亚洲影视婷婷| 欧美无砖专区一中文字| 国产成人综合自拍| 免费成人av在线播放| 亚洲精品中文字幕乱码三区| 2021中文字幕一区亚洲| 欧美人与性动xxxx| 99精品1区2区| 成人在线视频一区| 国产一区二区三区蝌蚪| 日韩一区精品视频| 亚洲h精品动漫在线观看| 中文字幕一区二区三区不卡 | 亚洲精品在线网站| 欧美绝品在线观看成人午夜影视| 99在线精品观看| 国产资源在线一区| 日本vs亚洲vs韩国一区三区 | www成人在线观看| 欧美精品一二三| 色综合一个色综合亚洲| 99re在线视频这里只有精品| 成人国产精品免费网站| 成人黄色小视频| 成人一区二区在线观看| 风流少妇一区二区| 99在线精品观看| 色综合久久久网| 91网站最新地址| 91免费版pro下载短视频| 99久久99久久精品免费观看| 99re成人在线| 欧美色成人综合| 日韩一区二区高清| 欧美电影在线免费观看| 日韩一区二区不卡| 国产日韩欧美精品电影三级在线 | 粉嫩av亚洲一区二区图片| 国内不卡的二区三区中文字幕| 久久国产精品99久久久久久老狼| 精品影视av免费| 成人一区二区三区在线观看| av在线一区二区| 91黄色激情网站| 欧美一级专区免费大片| 久久久久久久久久看片| 国产精品盗摄一区二区三区| 亚洲国产精品影院| 国产黄色精品网站| 国产精品18久久久久久vr| 国产aⅴ综合色| 色婷婷av一区二区三区软件| 911国产精品| 国产精品欧美一区二区三区| 亚洲午夜精品在线| 国产福利电影一区二区三区| 日本高清视频一区二区| 欧美电影一区二区| 国产精品乱码久久久久久| 亚洲一级二级在线| 韩国理伦片一区二区三区在线播放 | 国产亚洲制服色| 亚洲成人av在线电影| 国产精品一区二区三区99| 91亚洲国产成人精品一区二三| 91精品国产乱码| 一色屋精品亚洲香蕉网站| 五月婷婷久久综合| 成人免费高清在线| 日韩欧美综合一区| 亚洲精品欧美激情| 国产精品亚洲专一区二区三区| 欧美三级中文字幕在线观看| 中文字幕电影一区| 久久精品国产一区二区| 欧美亚洲国产bt| 亚洲欧美日韩国产另类专区| 国产精品自拍毛片| 欧美成人vr18sexvr| 午夜伦欧美伦电影理论片| 成人黄色av电影| 精品国产一区二区三区久久久蜜月| 一区精品在线播放| 国产91精品一区二区麻豆亚洲| 日韩欧美一区在线| 五月天中文字幕一区二区| 在线免费观看不卡av| 国产精品国产自产拍高清av王其| 久久97超碰色| 欧美成人三级在线| 麻豆91免费观看| 欧美一级欧美一级在线播放| 偷拍自拍另类欧美| 欧美精品久久久久久久多人混战| 一区二区高清免费观看影视大全 | 色哟哟日韩精品| 国产精品久久久久久久久免费樱桃| 另类的小说在线视频另类成人小视频在线 | 久久久久国产精品麻豆| 久久电影网站中文字幕| 日韩视频免费观看高清完整版| 日本免费新一区视频| 日韩欧美一二区| 国产成人在线看| 综合激情成人伊人| 欧美视频在线不卡| 亚洲最大成人综合| 欧美日本高清视频在线观看| 日本午夜精品一区二区三区电影| 在线播放视频一区| 国产在线视频一区二区| 国产亚洲欧美一区在线观看| 成人中文字幕合集| 亚洲精品乱码久久久久久| 欧美日韩国产片| 久久爱www久久做| 国产精品久久久久精k8| 日本高清免费不卡视频| 日本免费新一区视频| 久久网站最新地址| 色婷婷狠狠综合| 一级精品视频在线观看宜春院| 欧美视频中文字幕| 国产在线播精品第三| 国产精品福利一区二区| 欧美日本一区二区在线观看| 免费成人在线观看视频| 国产欧美一区二区精品性| 一本高清dvd不卡在线观看| 亚洲国产毛片aaaaa无费看| www精品美女久久久tv| 91麻豆免费在线观看| 久久精品久久精品| 一区二区日韩av| 久久蜜桃av一区二区天堂| 99久久精品免费看| 久久精品国产99国产| 亚洲天堂中文字幕| 精品久久久久av影院| 欧洲一区二区三区免费视频| 久久精品999| 亚洲h精品动漫在线观看| 国产日韩视频一区二区三区| 一区二区三区日韩| 中文久久乱码一区二区| 亚洲欧美日韩一区| 日本欧美在线看| 99久久精品国产毛片| 91麻豆精品国产91久久久更新时间| 日韩欧美国产综合在线一区二区三区| 欧美videossexotv100| 五月综合激情日本mⅴ| 在线观看精品一区| 亚洲欧美一区二区三区孕妇| 国产成人免费视频网站| 久久这里只有精品首页| 久久爱www久久做| 国产精品电影院| 26uuu精品一区二区| 欧美精品日韩综合在线| 色一情一伦一子一伦一区| 国产一二精品视频| 日日夜夜精品视频免费| 亚洲与欧洲av电影| 亚洲一区二区三区四区五区黄| 欧美极品aⅴ影院| 久久综合色8888| 欧美tk—视频vk| 日韩欧美另类在线| 在线不卡免费欧美| 91精品国产手机| 91精品国模一区二区三区| 欧美久久免费观看| 日韩一级高清毛片| 日韩视频一区二区在线观看|