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 /* ------------------------------------------- ...
 
随机推荐
- Java基础知识强化之IO流笔记66:Properties的概述 和 使用(作为Map集合使用)
			
1. Properties的概述 Properties:属性集合类.是一个可以和IO流相结合使用的集合类. 该类主要用于读取以项目的配置文件(以.properties结尾的文件 和 xml文件). ...
 - 【安卓小技巧】WebView设置在本页面打开网页,而不是启动浏览器打开
			
使用WebView可以巧妙的在安卓APP中嵌入HTML页面, WebView wb = (WebView) findViewById(R.id.web); //找到WebView控件 wb.setWe ...
 - MAC上安装Homebrew、Nginx、PHP、MySQL
			
准备工作 新版的 Mac OS 内置了Apache 和 PHP,可以通过以下命令查看Apache和PHP的版本号: # httpd -v # php -v 安装Homebrew Mac下的Homebr ...
 - Linux修改 DNS
			
前不久服务器上遇到一些问题,需要修改服务器的dns配置,写下来记下,笔者使用的说centos 6.5. DNS的配置文件在/etc/resolv.conf,但一般情况下修改后重启服务 service ...
 - 关于datalist
			
http://www.cnblogs.com/shipfi/archive/2009/10/19/1585705.html
 - jquery扩展 $.fn
			
$.fn是指jquery的命名空间,加上fn上的方法及属性,会对jquery实例每一个有效. 如扩展$.fn.abc(),即$.fn.abc()是对jquery扩展了一个abc方法,那么后面你的每一个 ...
 - THP Transparent HugePages关闭
			
ambari 安装Hortonworks HDP 时在检测host异常 The following hosts have Transparent Huge Pages (THP) enabled.TH ...
 - client 如何找到正确的RegionServer(HBase -ROOT-和.META.表)
			
在HBase中,大部分的操作都是在RegionServer完成的,Client端想要插入,删除,查询数据都需要先找到相应的RegionServer.什么叫相应的RegionServer?就是管理你要操 ...
 - 通过sql做数据透视表,数据库表行列转换(pivot和Unpivot用法)(一)
			
在mssql中大家都知道可以使用pivot来统计数据,实现像excel的透视表功能 一.MSsqlserver中我们通常的用法 1.Sqlserver数据库测试 ---创建测试表 Create tab ...
 - selenium简单代码入门
			
#!/usr/bin/env python #-*- coding:utf-8 -*- import os,sys,string import time import unittest from se ...