pywinauto如何获取gridwindow控件的屏幕位置
一:问题描述
问题一:通过查找pywinauto在线文档,其中没有讲解到gridwindow控件的方法,我不知道这个控件是不是标准控件,还是pywinauto根本就没适配这个控件。从网上查询了好多资料,这类资料是相当的少啊。有一个项目要对这个控件进行操作,要统计这个控件的个数,还要进行控件的右键保存功能。
问题二:这类控件由于没有相关的API方法,无法获取这个gridwindow控件的行信息,列信息及表头信息。
二:解决方案
问题一:通过不断的尝试新方法,虽然这个控件没有API方法,但是这个控件可以通过print_control_identifers()方法打印出来这个控件的屏幕坐标信息,通过从控制台获取打印的信息,并进行处理得到该控件的坐标信息,通过坐标值可以用相对坐标来操作此类控件,具体实现可以看下面的代码:
#获取控制台打印的东西
class TextArea(object):
def __init__(self):
self.buffer = []
def write(self, *args, **kwargs):
self.buffer.append(args) #连接工具
app = application.Application()
app.connect_(path = '工具路径')
time.sleep(2)
app = app.top_window_()
time.sleep(2) stdout = sys.stdout
sys.stdout = TextArea() #申请的空间
app.print_control_identifiers() #打印控件信息
text_area, sys.stdout = sys.stdout, stdout #获取控件信息
print text_area.buffer gridlist = []
for tup in text_area.buffer:
i = tup[0].find('要查找的控件')
if i > -1: locate = [] #用于存控件的坐标
grid = tup[0][tup[0].find('(')+1:tup[0].find(')')].split(',')
for gridi in grid:
gridj = gridi.strip()
gridk = int(gridj[1:])
locate.append(gridk) gridlist.append(locate)
问题二:这个问题困扰了好久,从网上查了好多资料,还是没能解决这个问题。
pywinauto如何获取gridwindow控件的屏幕位置的更多相关文章
- 获取屏幕上的某个控件相对位置,尤其是tableviewcell上的某一个控件的相对位置
我的需求就是tableviewcell上的按钮,点击就会出现一个弹框: 主要就是获取,所点击的cell上控件的相对位置: CGPoint buttonCenter = CGPointMake(btn. ...
- UGUI 之获取当前控件的高度
当Canvas Scaler选择Constant Pixel Size 当前的分辨率会被被固定,可以用RectTransform类里面的.rect变量值获取 height或Width. 在次情况下获取 ...
- winfrom获取用户控件里的控件对象
如何获取用户控件里的控件对象呢,其实思路也是很简单的, 比如有一个panel 用户控件 里面有许多的其他控件. 那么要找出一个Label控件怎么找呢,好的.现在我们就开始 首先,一个foreach循环 ...
- 获取android控件的高度
问题 如何获取一个控件的长和高,相信很多朋友第一眼看见这个问题都会觉得很简单,直接在onCreate里面调用getWidth.getMeasuredWidth不就可以获得了吗,但是,事实上是并没有简单 ...
- .net获取select控件中的文本内容
.net获取select控件中的文本内容 2009-11-28 21:19小V古 | 分类:C#/.NET | 浏览1374次 <select id="SecType" st ...
- JS获取用户控件中的子控件Id
用户控件 <asp:HiddenField ID="hfGradeId" runat="server" /> <asp:HiddenField ...
- 获取Repeater控件中的每一项数据
var items = rptList.Items;//获取Repeater控件的所有项 foreach (RepeaterItem item in items)//遍历每一项内容 { var t ...
- JS 获取Button控件的提交类型
<script type="text/javascript"> <!--获取button控件的类型---> function isAuditOrCancel ...
- WPF:获取DataGrid控件单元格DataGridCell
转载:http://blog.csdn.net/jhqin/article/details/7645357 /* ------------------------------------------- ...
随机推荐
- appscan 安全漏洞修复办法
appscan 安全漏洞修复办法http://www.automationqa.com/forum.php?mod=viewthread&tid=3661&fromuid=21
- win8上装Oracle 12c Client
安装之前要保证已装Microsoft Visual C++ Redistributable 32 bit: http://www.microsoft.com/download/en/details.a ...
- HTML5与CSS3基础教程第八版学习笔记1~6章
第一章,网页的构造块 网页主要包括三个部分: 1.文本内容(纯文字) 2.对其他文件的引用:图像,音频,视频,样式表文件,js文件 3.标记:对文本内容进行描述并确保引用正确地工作 注:所有这些成分都 ...
- js中的null与undefined
null undefined
- Sqlserver 快照
最近,开发系统使用SqlServer2008 R2,但是由于系统数据压力的增加,准备增加一个和正式数据库同步的库,用来供接口和报表使用,所以开始对SqlServer里面的一些技术开始研究,第一篇先来研 ...
- sql 中条件in参数问题
经常遇到条件为in的模糊查询,sql传参可以在service中直接传递参数,不必使用占位符 select * from ud_order where status in ("+status+ ...
- union判断CPU是little-endian还是big-endian存储
利用联合体的特殊存储方式,便能检测出来cpu所使用的事big-endian或者是little-endian的存储方式. 1.判断系统是Big liden 或者是little ledin 方法1:in ...
- 12天学好C语言——记录我的C语言学习之路(Day 9)
12天学好C语言--记录我的C语言学习之路 Day 9: 函数部分告一段落,但是我们并不是把函数完全放下,因为函数无处不在,我们今后的程序仍然会大量运用到函数 //转入指针部分的学习,了解指针是什么 ...
- Windows下查询进程、端口
PID --> 端口号netstat -ano | findstr 8244 端口号 --> PIDnetstat -aon|findstr "11211" PID - ...
- Entity Framework 学习笔记(1)
开始从头系统地学习Entity Framework,当前的稳定版本为6.1.3,Nuget主页 http://www.nuget.org/packages/EntityFramework/ 微软喜欢把 ...