zoukankan      html  css  js  c++  java
  • UIAutomation学习入门

    .界面的自动化操作

    .Ui自动化测试

    .软件外挂

    .Win32基础知识

    a.Win32中一切元素皆窗口,窗口之间有父子关系。整个桌面是一个“根窗口”。

    b.进程:

    根据进程id拿到进程对象Process process = Process.GetProcessById(processId);

    启动一个进程:Process process = Process.Start(exe路径);

    杀死一个进程process.Kill()

    .UIAutonation基础

    1、需要添加对UIAutomationClient、 UIAutomationProvider、 UIAutomationTypes的引用

    2AutomationElement.RootElement是窗口根元素

    AutomationElement.FromHandle(IntPtr hwnd)从窗口句柄拿到AutomationElement对象。

    3、遍历:

    mainElement.FindAll(TreeScope.Descendants,

    new PropertyCondition(AutomationElement.ClassNameProperty, "TLabeledEdit"));

    TreeScope.Descendants代表递归从所有子孙元素中递归查找;如果是从直接子节点查找,则使用TreeScope.Children

    Condition是过滤条件,可以根据类名等查找,如果是不指定查询条件则使用Condition.True Condition

    FindFirst是查到第一个。

    4、点击按钮、设置文本、读取文本使用Pattern来实现。不是所有Pattern都支持

    1)设置控件的值

    ValuePattern 

    valuePattern = (ValuePattern)element.GetCurrentPattern(ValuePattern.Pattern);

    valuePattern.SetValue("rupeng.com");

    2)得到文本控件的值

    TextPattern 

    valuePattern = (TextPattern)element.GetCurrentPattern(TextPattern.Pattern);

    string v=  valuePattern.DocumentRange.GetText(-1);

    3)调用控件,比如点击按钮

    var clickPattern = (InvokePattern)element.GetCurrentPattern(InvokePattern.Pattern);

    clickPattern.Invoke();

  • 相关阅读:
    巴厘岛的雕塑(sculptures)
    BZOJ4361: isn
    BZOJ2131: 免费的馅饼
    BZOJ4240: 有趣的家庭菜园
    BZOJ5484: [Usaco2018 Dec]Sort It Out
    BZOJ 2151: 种树
    HDU 1285 确定比赛名次(拓扑排序+优先队列)
    申请中文域名并跳转到个人网站(多种方法的尝试)
    Java binarysearch方法
    eclipse2019-12设置中文
  • 原文地址:https://www.cnblogs.com/miaosha5s/p/4993321.html
Copyright © 2011-2022 走看看