windows之UIAutomation查找元素
来源:互联网 发布:唐诗逸 知乎 编辑:程序博客网 时间:2024/05/17 09:05
UIAutomation查找元素
方法封装:
// 根据元素的属性查找元素public class FindElement{ /// 在规定的时间内查找一个符合条件的元素 /// <param name="aeParent">父窗口对象</param> /// <param name="ts">范围</param> /// <param name="cdt">条件</param> /// <param name="nTime">时间上限</param> static public AutomationElement FindElementByConditionInTimes(AutomationElement aeParent, TreeScope ts, Condition cdt, int nTime) { int nCount = nTime * 1000; AutomationElement aeToFind = aeParent.FindFirst(ts, cdt); while ((aeToFind == null) && (nCount > 0)) { Thread.Sleep(1000); nCount = nCount - 1000; aeToFind = aeParent.FindFirst(TreeScope.Descendants, cdt); if (aeToFind != null) { return aeToFind; } } return aeToFind; } /// 通过and条件在规定时间找一个元素 /// <param name="aeParent">父窗口对象</param> /// <param name="ts">范围</param> /// <param name="acdt">条件</param> /// <param name="nTime">等待时间上限值</param> static public AutomationElement FindElementByAndConditionInTimes(AutomationElement aeParent, TreeScope ts, AndCondition acdt, int nTime) { int nCount = nTime * 1000; AutomationElement aeToFind = aeParent.FindFirst(TreeScope.Descendants, acdt); while ((aeToFind == null) && (nCount > 0)) { Thread.Sleep(1000); nCount = nCount - 1000; aeToFind = aeParent.FindFirst(TreeScope.Descendants, acdt); if (aeToFind != null) { return aeToFind; } } return aeToFind; } /// 通过or条件在规定时间内查找一个元素 /// <param name="aeParent">父窗口对象</param> /// <param name="ts">范围</param> /// <param name="ocdt">条件</param> /// <param name="nTime">等待时间上限值</param> static public AutomationElement FindElementByOrConditionInTimes(AutomationElement aeParent, TreeScope ts, OrCondition ocdt, int nTime) { int nCount = nTime * 1000; AutomationElement aeToFind = aeParent.FindFirst(TreeScope.Descendants, ocdt); while ((aeToFind == null) && (nCount > 0)) { Thread.Sleep(1000); nCount = nCount - 1000; aeToFind = aeParent.FindFirst(TreeScope.Descendants, ocdt); if (aeToFind != null) { return aeToFind; } } return aeToFind; }}
调用:
// 获取主界面public static AutomationElement GetMainWindow(){ AutomationElement dtop = AutomationElement.RootElement; AutomationElement mainwin = FindElement.FindElementByConditionInTimes(dtop, TreeScope.Children, new PropertyCondition(AutomationElement.NameProperty, "Note"), 5); return mainwin;}// 主界面菜单按钮public static AutomationElement GetMenuBtn(AutomationElement mainwin){ AutomationElement menuBtn = FindElement.FindElementByConditionInTimes(mainwin, TreeScope.Children,new PropertyCondition(AutomationElement.HelpTextProperty, "Menu"), 5); return menuBtn;}// 是否保存窗口弹窗public static AutomationElement GetSaveWins(AutomationElement mainwin){ var andcondition = new AndCondition(new PropertyCondition(AutomationElement.NameProperty, "保存"), new PropertyCondition(AutomationElement.ClassNameProperty, "Window")); AutomationElement saveWins = FindElement.FindElementByAndConditionInTimes(mainwin, TreeScope.Children, andcondition, 5); return saveWins;}// 是否保存窗口弹窗之是按钮public static AutomationElement GetSaveWinsYesBtn(AutomationElement mainwin){ var andcondition = new AndCondition(new PropertyCondition(AutomationElement.NameProperty, "是"),new PropertyCondition(AutomationElement.ClassNameProperty, "Button")); AutomationElement aeParent = GetObject.GetSaveWins(mainwin); if (aeParent == null) { return null; } AutomationElement saveWinsYesBtn = FindElement.FindElementByAndConditionInTimes(aeParent, TreeScope.Children, andcondition, 5); return saveWinsYesBtn;}
阅读全文
0 0
- windows之UIAutomation查找元素
- windows之UIAutomation识别UI元素
- windows之UIAutomation的UI元素操作
- windows之UIAutomation简介
- windows之UIAutomation压测
- windows之UIAutomation鼠标操作
- uiautomation之AccessibilityNodeInfo
- JavaScript之元素查找
- 用UIAutomation识别UI元素(一)
- 用UIAutomation识别UI元素(二)
- 用UIAutomation识别UI元素(三)
- 用UIAutomation识别UI元素(四)
- 用UIAutomation识别UI元素(一)
- 用UIAutomation识别UI元素(二)
- 用UIAutomation识别UI元素(三)
- 用UIAutomation识别UI元素(四)
- iOS自动化测试之UIAutomation
- wondows之UIAutomation的优缺点
- 实习记录6 gdb调试
- 新手村 循环 数字反转
- 强化学习(五)----- 时间差分学习(Q learning, Sarsa learning)
- Writeup of BlueDon CTF's MISC-1:杂项全家桶
- JUnit4: java.lang.Exception: No tests found matching
- windows之UIAutomation查找元素
- JZOJ5434. 【NOIP2017提高A组集训10.30】Matrix
- 10.21日常总结
- gdb attach调试进程
- LintCode_082_落单的数
- 51nod 1636 教育改革(动态规划)
- endnote x7添加在期刊官网上下载的指定参考文献style ens文件
- 大四生活03:秋招结束
- HDOJ 1196 Lowest Bit(水题)