c#使用UIA进行模拟点击操作
之前,我写过一篇c#使用spy进行模拟操作的文章,有朋友在留言中提到了UIA进行操作,今天也使用UIA重新实现一次对vnc窗体的控制测试。
实现目标
在server框内填入192.168.2.200
自动点击Options按钮。
工具介绍
uispy,使用此工具查找窗体。可在我的csdn上下载,下载uispy。
在uispy内,找到我们需要操作的窗点,点击每行,将会使用红色边框线自动框选对应的窗口。
代码编写
执行结果如上图。
//找到名称为 VNC Viewer : Connection Details 的窗体
var desktop = AutomationElement.RootElement;//得到桌面
//创建一个搜索条件,条件标明使用name属性,值为我们需要找的窗体名称。
var condition = new PropertyCondition(AutomationElement.NameProperty, "VNC Viewer : Connection Details");
//查找符合条件的第一个窗体.
var window = desktop.FindFirst(TreeScope.Children, condition); //在需要的窗体上查找到options按钮并执行点击
var btncondition = new AndCondition(
new PropertyCondition(AutomationElement.ControlTypeProperty,ControlType.Button),
new PropertyCondition(AutomationElement.NameProperty,"Options...")
);
//找按钮
var buttonoption = window.FindFirst(TreeScope.Children, btncondition);
//获取按钮可操作事件
var clickPattern = (InvokePattern)buttonoption.GetCurrentPattern(InvokePattern.Pattern);
//执行事件
clickPattern.Invoke(); //GOOD,上面的代码都很顺利的执行,接下来我们继续实现向文本框内输入结果
//使用同样的方法先找到文本框
var txtcondition = new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.Edit);
//Descendants 这里注意,因为现在文本框不是窗口的直接子级,因此不可以直接使用Children.
var txtbox = window.FindFirst(TreeScope.Descendants, txtcondition);
var editPatten = (ValuePattern)txtbox.GetCurrentPattern(ValuePattern.Pattern);
editPatten.SetValue("192.168.2.200");
参考资料
http://www.cnblogs.com/coderzh/archive/2009/11/14/1603109.html
c#使用UIA进行模拟点击操作的更多相关文章
- selenuim2模拟鼠标键盘操作
有时候有些元素不便点击或者做其他的操作,这个时候可以借助selenium提供的Actions类,它可以模拟鼠标和键盘的一些操作,比如点击鼠标右键,左键,移动鼠标等操作.对于这些操作,使用perform ...
- casperjs配合phantomjs实现自动登录百度,模拟点击等等操作 - 怕虎在线www.ipahoo.com图文教程 - 怕虎在线
微信支付取消2万元保证金门槛,这是全民电商来袭!-观点-虎嗅网 微信支付取消2万元保证金门槛,这是全民电商来袭! casperjs配合phantomjs实现自动登录百度,模拟点击等等操作 - 怕虎在线 ...
- 用js或JQuery模拟点击a标签的操作
一.用js模拟点击a标签的操作. jsp代码: <a id="login" href="${pageContext.request.contextPath}/log ...
- webkit 模拟点击 winform
刚在园子里看到有博主将WebBowser控件替换为Chrome内核(),链接http://www.cnblogs.com/gdyblog/p/WebKitBrowser.html 于是我想既然实现了替 ...
- js javascript 模拟点击 超级链接点击 转
转自:http://mo2g.com/view/42/ 我尝试过多次用jQuery模拟用户点击a标签的功能,但都没有成功,并且困扰了很久.前段时间的一次发呆,冒出了新的想法,于是就动手进行了测试. 先 ...
- Android与.Net交互模拟用户屏幕操作添加APN和网络4G/3G切换
前几天接到一个需求,我们的客户需要对手机网络接入点进行可用性测试,简单点说就是需要实现Android上的APN配置的添加,APN切换网络模式4G/3G/2G切换,我要调研下写个demo. 因为是要实现 ...
- 使用AccessibilityService模拟点击事件失败的分析
使用AccessibilityService模拟点击事件的方法: AccessibilityNodeInfo.performAction(AccessibilityNodeInfo.ACTION_CL ...
- selenium + firefox/chrome/phantomjs登陆之模拟点击
登陆之模拟点击 工具:python/java + selenium + firefox/chrome/phantomjs (1)windows开发环境搭建 默认已经安装好了firefox 安装pip ...
- 记一次【模拟点击】,WinForm小软件开发过程
前言 年初四月份的时候,有朋友找到我,说想开发一个模拟点击的软件.最终软件做完后,发现效果不理想.唯一开发的我是认为最好是放弃了,做运营的他,坚持说这个没问题,说是改变合作方式.最终也是不了了之了. ...
随机推荐
- adb Logcat用法
转自: http://blog.csdn.net/tiantianshangcha/article/details/6288537 个人认为有一下几个常用命令: adb logcat -b radio ...
- MARCHdesign_王濤's 星云个人网站 | www.xingyun.cn/MARCHdesign
MARCHdesign_王濤's 星云个人网站 | www.xingyun.cn/MARCHdesign MARCHdesign_王濤
- jQuery中bind,live,delegate与one方法的用法及区别解析
bind( )方法用于将一个处理程序附加到每个匹配元素的事件上并返回jQuery对象. .bind(eventType[, evnetData], Handler(eventObject)) 其中,参 ...
- 注释PHP和html混合代码
<?php if(false){ ?> any code <?php } ?>
- vector的含义
数学中,vector(向量)表示一个量,由大小和方向构成.比如坐标中的一个带箭头的线段 -- 它1厘米长,正弦值六分之一π(30度角). 计算机的c++.java中,vector表示一种一维的数组.比 ...
- 高效JQuery编码
缓存变量 DOM遍历是昂贵的,所以尽量将会重用的元素缓存. // 糟糕 h = $('#element').height(); $('#element').css('height',h-20); ...
- [转] 在 Linux 中怎样使用cp命令合并目录树
PS:通过cp -r --link a/* b/* merged 硬链接不需要复制 怎样将两个布局相似的目录树合并成一个新的目录树?为理解该问题让我们思考下面的例子. 假设 dir1 和 dir2 目 ...
- C#导出数据到Excel通用的方法类
导出数据到Excel通用的方法类,请应对需求自行修改. 资源下载列表 using System.Data; using System.IO; namespace IM.Common.Tools { p ...
- Android -- Messager与Service
如果你需要你的service和其他进程通信,那么你可以使用一个Messenger来提供这个接口. 这种方法允许你在不使用 AIDL的情况下,进行跨进程通信IPC. 实现步骤 下面是一个如何使用 Mes ...
- solr error logs org.apache.solr.common.SolrException: ERROR: [doc=17] unknown field alias
在solr中 添加新的索引词语时,报如标题所示错误,指定是插入的字段没有在solr索引字段里 可以修改 solr安装目录/solr/conf 目录下的 schema.xml 在此xml文件内加入所需字 ...