如何配置java环境变量pywinauto环境

常用CSS中文字体转Unicode对照表 常用divcss字体名可以使用2种Unicode格式,以&微软雅黑&为例: 微软雅黑 和 \5FAE\8F6F\96C5\9ED1,常用字CSS里简体中文转换为Unicode编码. 另外注意:繁体中文字体名,在简体中文系统中是不能被识别的. 中文名 英文名 Unicode Unicode 2 Mac OS 华文细黑 STHeiti Light [STXihei] \534E\\9ED1 华文细黑 华文黑体 STHeiti \5
这篇文章主要介绍了js unicode 编码解析关于数据转换为中文的两种方法,需要的朋友可以参考下 var str = &\\u6211\\u662Funicode\\u7F16\\u7801&; 关于这样的数据转换为中文问题,常用的两种方法. 1. eval 解析 复制代码 代码如下: str = eval(&'& + str + &'&); // &我是unicode编码& 2. unescape 解析 复制代码 代码如下
这两天开始接触pywinauto,听说百度的自动化QA也用这个模块,于是来了兴趣,但网上的教程很少,而且基本上都是拿官方的notepad来说,首先中文菜单的支持是问题,其次各种操作也没有写清楚,阅读官方的文档,发现这个东西使用起来还真是非常方便,下面我也以notepad为例来说明一下它的简单操作. 安装 1. pywinauto https://sourceforge.net/project/showfiles.php?group_id=. Sendkeys http://www
晚上在抓取某网站数据,结果在数据包中发现了这么一串编码的数据:&......\u65b0\u6d6a\u5fae\u535a......&, 这其实是中文被unicode编码后了的数据,我现在就是想解码出中文来,上度娘搞了半天,试了很多的姿(方)势(法),终于搞定了. 问题背景: 晚上在抓取某网站数据,结果在数据包中发现了这么一串编码的数据:&......\u65b0\u6d6a\u5fae\u535a......&, 这其实是中文被unicode编码后了的数据,我
本文介绍了c#通过unicode编码判断字符是否为中文的示例,在unicode字符串中,中文的范围是在4E00..9FFF:CJK Unified Ideographs.通过对字符的unicode编码进行判断来确定字符是否为中文 protected bool IsChineseLetter(string input,int index) { int code = 0; int chfrom = Convert.ToInt32(&4e00&, 16); //范围(0x4e00-0x9ff
首先,FCKEDITOR的性能是非常好的,用户只需很少的时间就可以载入 FCKEDITOR所需文件.对于其他在线编辑器来说,这几乎是个很难解决的难题,因为在开启编辑器时需要装载太多的文件. 比如CUTEEDITOR,虽 然功能比FCKEDITOR还要强大,可是,它本身也够庞大了,至于FREETEXTBOX等,其易用性与FCKEDITOR相比,尚有差距,可以 说,FCKEDITOR是一个别具匠心的在线编辑器,它里面融入了作者高深的面向对象的JAVASCRIPT功力,集易用性与强大的功能与一体. .
在报表工具Style Report中,报表可以以PDF等多种形式输出,PDF具有许多其他电子文档格式无法相比的优点.PDF文件格式可以将文字.字型.格式.颜色及独立于设备和分辨率的图形图像等封装在一个文件中.现在我们具体看下在报表工具Style Report中如何进行配置PDF的中文设置: 在EM端,在 &外观/PDF/PDF生成&页面,&字体选项&卡中,选中&符号匹配&,在&TrueType /CID字体路径&中填写两个内容
1.Grails 开发的时候要求JDK 6 ,但是可以部署到JDK5环境(BuildConfig.groovy) grails.project.source.level = &1.5& grails.project.target.level = &1.5& 2.指定Servlet 版本(BuildConfig.groovy) grails.servlet.version = &3.0& 3.配置 root logger (Config.groov
最近安装了ubuntu server 9.04,打算下一步作为新服务器的环境.需要支持utf-8中文环境. 设置中文环境很简单,需要三步.第一步,安装中文包: sudo apt-get install language-pack-zh language-pack-zh-base 第二步,配置相关环境变量: sudo vim /etc/environment 在文件中增加语言和编码的设置: LANG=&zh_CN.UTF-8& LANGUAGE=&zh_CN:zh:en_US:
&% function unicode(str) dim i,j,c,i1,i2,u,fs,f,p unicode=&& p=&& for i=1 to len(str) c=mid(str,i,1) j=ascw(c) if j&0 then j=j+65536 end if if j&=0 and j&=128 then if p=&c& then unicode=& &&unicode p
最近在研究QQ空间里个个游戏的工具,需要把腾讯编码过的用户名解码,照实费了点劲. 实在搞不懂TX,用户名的编码竟然返回的值不一样,如 &雷磊52D&,就有如下两种返回?雷磊?52D 和 %01%u96F7%u78CA%0152D.相当的郁闷啊.好在TX还有返回中文名字,就省去的解码的过程,但还是记录下. /// &summary& /// Unicode字符转换为中文字符,如96F7,78CA等& /// &/summary& private cha
Rhythmbox中文乱码解决办法 分类: Linux
15:25 1368人阅读 评论(0) 收藏 举报 转自:/morgensonne/item/3470aef58747abde 今天在网络上找到了一个比较好的解决Rhythmbox中文乱码的问题的方法 进入你的音乐文件夹执行如下代码: mid3iconv -e GBK *.mp3 如果没有提示多试几次, 有可能系统会提示: python-mutagen没有安装. s
现象:众所周知使用json_encode可以方便快捷地将对象进行json编码,但是如果对象的属性中存在着中文,问题也就随之而来了.json_encode会将中文转换为unicode编码,例如:'胥'经过json_encode处理后变为'\u80e5',最终的json中中文部分被替换为unicode编码.我们要解决的就是将对象转换为json并保证对象内部的中文在json中仍然是以正常的中文出现,现在看来只使用json_encode是不能达到目的的. 我的解决方法:先将类中的中文字段进行url编码(
CSS中文字体对照表 css字体名可以使用2种Unicode格式,以&微软雅黑&为例: 微软雅黑 和 \5FAE\8F6F\96C5\9ED1,如果未找到需要的字体名称,可以到这里把简体中文转换为Unicode编码. 另外注意:繁体中文字体名,在简体中文系统中是不能被识别的. 中文名 英文名 Unicode Unicode 2 Mac OS 华文细黑 STHeiti Light [STXihei] \534E\\9ED1 华文细黑 华文黑体 STHeiti \534E
本篇文章,小编为大家介绍关于国际化.OGNL表达式语言,有需要的朋友可以参考一下 一.国际化 准备资源文件,资源文件的命名格式如下: baseName_language_country.properties baseName_language.properties baseName.properties 其中baseName是资源文件的基本名,我们可以自定义,但language和country必须是java支持的语言和国家.如: 中国大陆: baseName_zh_CN.properties 美
在xml应用中,经常将一些URL信息作为xml数据存储,其中URL参数有可能包含有中文字符.当使用dom对xml数据进行解析时,可以对中文字符进行编码. 但如果只使用xslt来显示xml数据时(data.xml+data.xsl),发现此时的URL会出现编码错误.即使指定编码类型(encoding=&gb2312&),依然会出现同样的问题. 测试发现:是IE的缓存机制问题,IE仍会把新的页面(所链接的URL)的MIME内容类型默认为text/xml 解决方法: 1.指定输出文档类型为x
在php5.4以前做json_encode的时候中文会被unicode编码,中文都会被编码,变成不可读的,类似&\u***&的格式,接下来介绍几种5.4之前不进行unicode转码的处理方法 在php5.4以前做json_encode的时候中文会被unicode编码,中文都会被编码,变成不可读的,类似&\u***&的格式,还会在一定程度上增加传输的数据量. 例如: &?php $str = '中文'; echo json_encode($str); //&qu
这篇文章主要介绍了C#匹配中文字符串的4种正则表达式分享,本文介绍了4种形式下的中文字符串匹配正则,需要的朋友可以参考下 本文介绍在C#中使用匹配中文的正则表达式,包括纯中文.有中文.中文开头.中文结尾等几个正则表达式示例.在正则表达式中,中文可以通过Unicode编码来确定正则表达式范围. 在C#中,匹配中文的正则表达式用Unicode来表示时,范围是: [\u4e00-\u9fa5].所以,在此基础上,我们可以得到如下一些正则表达式. 1.匹配字符串全部是中文字符的正则表达式 &^[\u4e
一.系统初始化 二.输入法 三.系统美化 四.影视工具 五.文件浏览 六.系统管理 七.其他软件 八.虚拟 九.编程环境 十.KDE 十一.Ubuntu出现的一些问题 作者 pengkuny 原始链接 /post/Install_Ubuntu8.04.html 一.系统初始化 &65279;1.update source list , updae your system. 切换教育网和电信网络的源: (对于hardy用户来说,只要将下面源中的guts
1.自从Struts2.13以后,之前的FilterDispatcher标注为过时 &filter-class& org.apache.struts.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter &/filter-class& 2.action中默认的method为execute() 默认class为ActionSupport 默认name为success: 3.转发类型 传中文参数URLEncoder.encode(&quo
一.国际化 准备资源文件,资源文件的命名格式如下: baseName_language_country.properties baseName_language.properties baseName.properties 其中baseName是资源文件的基本名,我们可以自定义,但language和country必须是java支持的语言和国家.如: 中国大陆: baseName_zh_CN.properties 美国: baseName_en_US.properties 现在为应用添加两个资源文
[Struts2是在WebWork2基础上发展而来的.和Struts1一样,也属于MVC框架.] [搭建Struts2环境]: 1.导入相关jar包: struts2-core-2.x.x.jar:Struts2框架的核心类库 xwork-2.x.x.jar:Xwork类库,Struts2在其基础上构建 ongl-2.6.x.jar:对象图导航语言(Object Graph Navigation Language),Struts2框架通过其读写对象的属性 freemarker-2.3.x.jar
编写了下面这个程序: #-*-encoding:utf-8-*- f = open('G:\\测试.txt') print f.read() 文件是确实存在的,且以utf-8编码.但是运行时候出现问题: IOError: [Errno 2] No such file or directory: 'G:\\\xe6\xb5\x8b\xe8\xaf\x95.txt' 一个解决方法是,将文件名字符串转换为unicode编码: #-*-encoding:utf-8-*- f = open('G:\\测试
在老项目里加些js文件和老项目的编码格式不一致出现乱码,由于两个文件都不能转格式,于是百度个不错的方法在此与大家分享下 今日遇到一个棘手的问题,在老项目里加些js文件和老项目的编码格式不一致出现乱码.老页面是GB2312,链入的js文件是UTF-8,两个文件都不能转格式. 第一个想法就是将js文件中的中文转换为unicode编码.这种做法是建立在牺牲可读性的条件下的,中文全都变成密码了. 事后想想应该还有更好的方法吧,然后就去百度,方法如下: &script type='text/javascr
众所周知使用json_encode可以方便快捷地将对象进行json编码,但是如果对象的属性中存在着中文,问题也就随之而来了.json_encode会将中文转换为unicode编码 例如:'胥'经过json_encode处理后变为'\u80e5',最终的json中中文部分被替换为unicode编码.我们要解决的就是将对象转换为json并保证对象内部的中文在json中仍然是以正常的中文出现,现在看来只使用json_encode是不能达到目的的. 我的解决方法:先将类中的中文字段进行url编码(url
若需要utf-8格式,请自行将下面的GB2312改成utf-8. ' 二进制转字符串,否则会出现乱码的! Function sTb(vin) Const adTypeText = 2 Dim BytesStream,StringReturn Set BytesStream = Server.CreateObject(&ADODB.Stream&) With BytesStream .Type = adTypeText .Open .WriteText vin .Position = 0
python学习过程中发现英文不好学起来挺困难的,其中小弟就遇到一个十分蛋疼的问题,百度了半天就没找到解决办法~??摸索了半天自己解决了,记录下来与君共勉. 问题提出: 有时候我们采集网页,处理完毕后将字符串保存到文件或者写入数据库,这时候需要制定字符串的编码,如果采集网页的编码是gb2312,而我们的数据库是utf-8的,这样不做任何处理直接插入数据库可能会乱码(没测试过,不知道数据库会不会自动转码),我们需要手动将gb2312转换成utf-8. 首先我们知道,python里的字符默认是asc
字符集和字符编码[订正] 这个主题已经被N多人讨论过了,这里仅仅是个人总结,不是教程. 字符集和字符编码 潘孙友
于遵义 目录 一.字符集 二.字符编码 三.Windows平台 3.1 Codepage代码页 3.2 编码转换(API) 3.3 编码转换(CRT) [感谢@loop指出错误] 四.Linux/unix平台 4.1 iconv 4.2 ICU 一.字符集 字符集是一个集合,描述并定义了这个集合中可以出现哪些字符,常见的字符有GB2312.GBK.GB18030
ubuntu存在好多乱码问题,幸亏网上高人无数,对这些问题还都有解决之道. 先说最简单的解决办法吧! sudo apt-get install python-mutagen 安装上这个东西 然后跳入到存放音乐文件的目录下,输入指令mid3iconv -e gbk *.mp3即可.一般音乐都是gbk编码,然后会转化为utf-8吧!我试了试,果然很有效. 以下是网上转的相关细节 1.了解 mp3 标签类型和使用的编码 首先说 mp3 标签类型和编码,大家应该知道目前主要存在这几种标准,ID3v1,
英文不好学起来挺困难的,其中小弟就遇到一个十分蛋疼的问题,百度了半天就没找到解决办法~囧~ 摸索了半天自己解决了,记录下来与君共勉. 问题提出: 有时候我们采集网页,处理完毕后将字符串保存到文件或者写入数据库,这时候需要制定字符串的编码,如果采集网页的编码是gb2312,而我们的数据库是utf-8的,这样不做任何处理直接插入数据库可能会乱码(没测试过,不知道数据库会不会自动转码),我们需要手动将gb2312转换成utf-8. 首先我们知道,python里的字符默认是ascii码,英文当然没问题啦
MYSQL 5.5 之前, UTF8 编码只支持1-3个字节,只支持BMP这部分的unicode编码区, BMP是从哪到哪,到http://en.wikipedia.org/wiki/Mapping_of_Unicode_characters这里看,基本就是0000-FFFF这一区. 从MYSQL5.5开始,可支持4个字节UTF编码utf8mb4,一个字符最多能有4字节,所以能支持更多的字符集. utf8mb4 is a superset of utf8 utf8mb4兼容utf8,且比utf8
工作中经常遇到java编码问题,由于缺乏研究,总是无法给出确切的答案,这个周末在网上查了一些资料,在此做些汇总. 问题一:在java中读取文件时应该采用什么编码? Java读取文件的方式总体可以分为两类:按字节读取和按字符读取.按字节读取就是采用InputStream.read()方法来读取字节,然后保存到一个byte[]数组中,最后经常用new String(byte[]);把字节数组转换成String.在最后一步隐藏了一个编码的细节,new String(byte[]);会使用操作系统默认的
工作中经常遇到java编码问题,由于缺乏研究,总是无法给出确切的答案,这个周末在网上查了一些资料,在此做些汇总. 问题一:在java中读取文件时应该采用什么编码? Java读取文件的方式总体可以分为两类:按字节读取和按字符读取.按字节读取就是采用InputStream.read()方法来读取字节,然后保存到一个byte[]数组中,最后经常用new String(byte[]);把字节数组转换成String.在最后一步隐藏了一个编码的细节,new String(byte[]);会使用操作系统默认的
1. native2ascii介绍 native2ascii.exe 是 Java 的一个文件转码工具,是将特殊各异的内容转为用指定的编码标准文体形式,它通常位于 JDK_home\bin 目录下,安装好 JDK后,可在命令行直接使用 native2ascii 命令进行转码. 2. 使用方法 例如:native2ascii 工具将带有本机编码字符(非拉丁 1 和非单一码字符)的文件转换成带有GBK编码字符的文件. 假设需要转化的属性文件为:D:\test\resources.properties
UTF8转GB2312将UTF8编码文字转换为GB编码文字,UTF8编码文字将转换为汉字的代码,需要的朋友可以参考下. 1.'UTF转GB---将UTF8编码文字转换为GB编码文字 function UTF2GB(UTFStr) for Dig=1 to len(UTFStr) '如果UTF8编码文字以%开头则进行转换 if mid(UTFStr,Dig,1)=&%& then 'UTF8编码文字大于8则转换为汉字 if len(UTFStr) &= Dig+8 then GBS
上一节我们介绍了正则表达式,它的内容其实还是蛮多的,如果一个正则匹配稍有差池,那可能程序就处在永久的循环之中,而且有的小伙伴们也对写正则表达式的写法用得不熟练,没关系,我们还有一个更强大的工具,叫Beautiful Soup,有了它我们可以很方便地提取出HTML或XML标签中的内容,实在是方便,这一节就让我们一起来感受一下Beautiful Soup的强大吧. 1. Beautiful Soup的简介 简单来说,Beautiful Soup是python的一个库,最主要的功能是从网页抓取数据.官
今天开发的时候遇到国际化的问题,使用了一下native2ascii进行字符转换,记录一下: JDK中带了一个实用的程序native2ascii, 它可以根据指定的编码集在本地字符和UNICODE字符之间进行转换. 最常用的: native2ascii 源文件名 目标文件名 //Native char -& Unicode char 带-encoding参数的: native2ascii -encoding GBK 源文件名 目标文件名 //Native char -& Unicode char
将字符串转成16进制的ASCii码的值 python: 使用python 内置函数repr可以将非ascii码转换成\x**的样式,如下: &&& a='我们都是中国人' &&& print repr(a) '\xe6\x88\x91\xe4\xbb\xac\xe9\x83\xbd\xe6\x98\xaf\xe4\xb8\xad\xe5\x9b\xbd\xe4\xba\xba' &&& 好像换成非中文就不行了. 对于英文可以用这个: &&&
一. 概述 1. 参考文章 &git乱码解决方案汇总& &另类方法解决Windows下git-bash中文输入的乱码问题& 2. 相关软件 Git for Windows msysgit:msysgit是Git 版本控制系统在 Windows 下的版本. 点击进入msysgit下载页面 也可下载Portable版本,此版本无需安装,解压后可直接使用. 点击进入msysgit Portable版本下载页面 msys:一个通过将Linux源代码在Win32上编译而成的UNIX工作环境.
这篇文章主要介绍了MySQL中文乱码的一些解决方案,本文同时分解了MySQL中文乱码的原因分析,需要的朋友可以参考下 我们自己鼓捣mysql时,总免不了会遇到这个问题:插入中文字符出现乱码,虽然这是运维先给配好的环境,但是在自己机子上玩的时候咧,总得知道个一二吧,不然以后如何优雅的吹牛B. 如果你也遇到了这个问题,咱先不谈原因,在PC自带的cmd中(或者是mysql安装版安装后的Command Line客户端,又或者是工作用的SecureCRT)试试效果.进入mysql环境,从头开始操作.假设你
php地址栏传中文$_GET下来后乱码,urlencode和urldecode,iconv,base64_encode等方法,整理基本是常用的了. php地址栏传中文$_GET下来后乱码,urlencode和urldecode用法详解 url编码 语法: string urlencode(string str); 返回值: 字符串 函数种类: 编码处理 例如: &?php $ChineseName=&我的名字,是中文的哦&; $EncodeStr=urlencode($Chine
我的这些文字是从这几年来的 PuTTY 使用经验中慢慢得来的,也不仅仅是介绍 PuTTY,还包括了一些相关的软件,比如:优秀的 FTP 工具 FileZilla.功能强大的 SFTP 客户端 WinSCP. 杂七杂八的乱说了一些,这里把大致内容罗列如下: 最简单的使用,登录 SSH 主机 中文乱码的处理 PuTTY 常用配置的说明 复制.粘贴 保存会话 注销 自动登录用户名 自动设置环境变量 设置代理服务器 自动执行命令 备份.删除 PuTTY 的设置 PuTTY 的 X11 转发 如何用 Pu
php.ini是运行PHP环境核心配置文件,这个文件必须命名为'php.ini'并放置在httpd.conf中的PHPIniDir指令指定的目录中.本文是PHP.ini中文参考.PHP.ini该文件的语法非常简单.空白字符和以分号开始的行被简单地忽略. PHP.ini 中文参考 ;;;;;;;;;;; ; 警告 ; ;;;;;;;;;;; ; 此配置文件是对于新安装的PHP的默认设置. ; 默认情况下,PHP使用此配置文件安装 ; 此配置针对开发目的,并且*不是*针对生产环境 ; 基于一些安全方
非常全面的 putty 中文教程,收藏以备用 原文地址:/View?docid=ajbgz6fp3pjh_2dwwwwt PuTTY 中文教程 作者:柴锋 2006年11月 Web:
email: putty-tutorial [0x40] chaifeng [0x2E] com Links: /View?docid=ajbgz6fp3pjh_2dwwwwt 更
;;;;;;;;;;;;;;;;; ;; 关于php.; ;;;;;;;;;;;;;;;;; ; 这个文件必须命名为'php.ini'并放置在httpd.conf中PHPINIDir指令指定的目录中. ; 最新版本的php.ini可以在下面两个位置查看: ; http://cvs.php.net/viewvc.cgi/php-src/php.ini-recommended?view= http://cvs.php.net/viewvc.cgi/php-src/php.ini-d
一.文件乱码处理 1.文件默认编码:默认使用项目的默认编码 右击文件-&Properties-&Resource-&Text file encoding 2.JSP文件编码:由于JSP要翻译为Servlet &%@ page language=&java& pageEncoding=&utf-8&%& 二.浏览器与服务器传输数据乱码处理 1.浏览器端编码,一般由服务器端告诉浏览器如何解码数据: 1.1.Servlet response.
;;;;;;;;;;;;;;;;; ;; 关于php.; ;;;;;;;;;;;;;;;;; ; 这个文件必须命名为'php.ini'并放置在httpd.conf中PHPINIDir指令指定的目录中. ; 最新版本的php.ini可以在下面两个位置查看: ; http://cvs.php.net/viewvc.cgi/php-src/php.ini-recommended?view= http://cvs.php.net/viewvc.cgi/php-src/php.ini-d
中文字符编码研究系列第四期,PHP实现中文字符进制转换原理分析,主要讨论中文汉字转换为十进制和十六进制的方法,并掌握转换原理应用于实际开发.本文以GBK编码字符为例,讨论GBK编码的字符转换原理 一,中文字符转十进制原理分析 GBK编码中一个汉字由二个字符组成,获取汉字字符串的方法如下 $string = &不要迷恋哥&; $length = strlen($string); for($i=0;$i&$$i++){ if(ord($string[$i])&12
昨天本来说早点睡觉呢,没想到一个在写PHP程序的时候发现出现的乱码问题又睡晚了,不过总算解决了. 首先:找出乱码产生的原因. 一直以为是浏览器的原因,结果我在chrome,firefox,IE9里面都出现了乱码,所以浏览器的因素可以排除.为了验证我猜测是Gvim的原因, 我用记事本(note)简单写了一个php文件 &?php echo &你好&; echo &世界&; ?& 结果没有出现乱码,所以问题就出在Gvim上,这个结论水到渠成. 于是,开始研究
这篇文章主要介绍了VC下实现fopen支持中文的方法,需要的朋友可以参考下 VC的fopen函数第一个参数是const char*,一旦遇到中文文件名就难以应付了,如果中文是UTF8编码的话,我们还可以用下列代码将其转换为UNICODE,然后用_wfopen函数打开文件. 代码如下: bool UTF8ToUnicode(const char* UTF8, wchar_t* strUnicode) { DWORD dwUnicodeL //转换后Unicode的长度 TCHAR *pwTe
Copyright (C) , All Rights Reserved.
版权所有 闽ICP备号
processed in 0.087 (s). 11 q(s)python自动化工具之pywinauto(二) - CSDN博客
python自动化工具之pywinauto(二)
python自动化工具之pywinauto(二)
pywinauto的使用——各控件的操作
对于常见的窗口程序,需要点点填填的控件有输入框(Edit)、按钮(Button)、复选框(CheckBox)、单选框(RadioButton)、下拉列表(ComboBox).
关于各个控件的函数方法,可以查阅官网
下面结合程序讲一下各个控件的用法。
要进行文件格式转换,一般需要三步:
1. 选择源文件
2. 转换参数配置
3. 选择输出文件位置
在这里,就是现在文件名后面的编辑框中填入源文件的位置,然后勾选自动扩帧复选框,然后点击转换按钮,最后会弹出一个另存为的文件对话框来选择目标文件位置。
目的明确了,接下来就是如何干的问题了。分两步:
1. 找到控件
2. 操作控件
如何让程序找到控件呢?
如何匹配控件
最简单的方法就是通过空间特征进行匹配。窗体也可以看成是一个大控件。匹配窗口的方法除了前面提到的window()方法,还可以通过中括号加窗口名。如:
dlg_spec = app.window(title=r'EXE/EXE 转 MP4')
dlg_spec = app[r'EXE/EXE 转 MP4']
除了title,还可以使用class或者title+class或者相近的text和类来匹配控件。
另外一种方法就是我们知道了这个程序的层次结构,然后类似寻到DOM元素一样一层一层的匹配。
那么如何找到这个层次结构呢。pywinauto提供了print_control_identifiers()函数来显示该窗体下所有控件的结构。
dlg_spec = app[r'EXE/EXE 转 MP4']
dlg_spec.print_control_identifiers()
Control Identifiers:
TEXE2FLVForm - 'EXE/EXE 转 MP4'
(L202, T55, R496, B562)
['EXE/EXE 转 MP4TEXE2FLVForm', 'TEXE2FLVForm', 'EXE/EXE 转 MP4']
child_window(title="EXE/EXE 转 MP4", class_name="TEXE2FLVForm")
| TTrackBar - ''
(L273, T189, R470, B204)
| ['TTrackBar', '下载安装相关视频编码器TTrackBar']
| child_window(class_name="TTrackBar")
| TGroupBox - '图像缩小输出时处理方法'
(L212, T460, R483, B522)
| ['图像缩小输出时处理方法', 'TGroupBox', '图像缩小输出时处理方法TGroupBox', 'TGroupBox0', 'TGroupBox1']
| child_window(title="图像缩小输出时处理方法", class_name="TGroupBox")
| RadioButton - '部分画面鼠标自动跟随(动态显示光标附近图像)'
(L232, T501, R470, B515)
| ['RadioButton', '部分画面鼠标自动跟随(动态显示光标附近图像)RadioButton', 'RadioButton1', '部分画面鼠标自动跟随(动态显示光标附近图像)', 'RadioButton0']
| child_window(title="部分画面鼠标自动跟随(动态显示光标附近图像)", class_name="TRadioButton")
| RadioButton - '全画面缩放(文字可能会变不清晰)'
(L232, T480, R409, B495)
| ['全画面缩放(文字可能会变不清晰)', 'RadioButton2', '全画面缩放(文字可能会变不清晰)RadioButton']
| child_window(title="全画面缩放(文字可能会变不清晰)", class_name="TRadioButton")
| RadioButton - '部分画面鼠标自动跟随(动态显示光标附近图像)'
(L232, T501, R470, B515)
| ['RadioButton', '部分画面鼠标自动跟随(动态显示光标附近图像)RadioButton', 'RadioButton1', '部分画面鼠标自动跟随(动态显示光标附近图像)', 'RadioButton0']
| child_window(title="部分画面鼠标自动跟随(动态显示光标附近图像)", class_name="TRadioButton")
| RadioButton - '全画面缩放(文字可能会变不清晰)'
(L232, T480, R409, B495)
| ['全画面缩放(文字可能会变不清晰)', 'RadioButton2', '全画面缩放(文字可能会变不清晰)RadioButton']
| child_window(title="全画面缩放(文字可能会变不清晰)", class_name="TRadioButton")
| Edit - '扩帧的作用是让鼠标移动更加平滑,文件也会变大一些\r\n如要扩帧建议扩帧后不要超过15帧/秒\r\n'
(L225, T298, R477, B319)
| ['自动扩帧Edit0', '自动扩帧Edit', '自动扩帧Edit1', 'Edit', 'Edit1', 'Edit0']
| child_window(title="扩帧的作用是让鼠标移动更加平滑,文件也会变大一些\r\n如要扩帧建议扩帧后不要超过15帧/秒\r\n", class_name="TMemo")
| Edit - '除非对FLV的编码器非常熟悉,完全知道自己想要什\r\n么,否则请不要修改默认的编码器设置\r\n'
(L214, T115, R483, B143)
| ['Edit2', '浏览Edit']
| child_window(title="除非对FLV的编码器非常熟悉,完全知道自己想要什\r\n么,否则请不要修改默认的编码器设置\r\n", class_name="TMemo")
| Button - '转换(&Z)'
(L300, T529, R362, B551)
| ['Button', '转换(&Z)', 'Button0', 'Button1', '转换(&Z)Button']
| child_window(title="转换(&Z)", class_name="TButton")
| Button - '关闭(&C)'
(L370, T529, R432, B551)
| ['关闭(&C)', '关闭(&C)Button', 'Button2']
| child_window(title="关闭(&C)", class_name="TButton")
| Button - '浏览'
(L434, T88, R483, B106)
| ['Button3', '浏览', '浏览Button']
| child_window(title="浏览", class_name="TButton")
| Edit - ''
(L259, T88, R429, B107)
| ['EXE/EXE 转 MP4Edit', 'Edit3']
| child_window(class_name="TEdit")
| Edit - '5'
(L286, T273, R307, B292)
| ['自动扩帧Edit2', 'Edit4']
| child_window(title="5", class_name="TEdit")
| CheckBox - '自动扩帧'
(L219, T277, R280, B292)
| ['CheckBox1', '自动扩帧', '自动扩帧CheckBox', 'CheckBox', 'CheckBox0']
| child_window(title="自动扩帧", class_name="TCheckBox")
| Button - '下载安装相关视频编码器'
(L273, T166, R409, B184)
| ['下载安装相关视频编码器Button', '下载安装相关视频编码器', 'Button4']
| child_window(title="下载安装相关视频编码器", class_name="TButton")
| ComboBox - 'AAC(推荐)'
(L273, T221, R409, B240)
| ['ComboBox1', 'ComboBox0', '下载安装相关视频编码器ComboBox', 'ComboBox']
| child_window(title="AAC(推荐)", class_name="TComboBox")
| ComboBox - 'H264(AVC X264) 推荐'
(L273, T146, R409, B165)
| ['ComboBox2', 'EXE/EXE 转 MP4ComboBox']
| child_window(title="H264(AVC X264) 推荐", class_name="TComboBox")
| TGroupBox - '输出图像尺寸'
(L212, T331, R483, B454)
| ['输出图像尺寸TGroupBox', 'TGroupBox2', '输出图像尺寸']
| child_window(title="输出图像尺寸", class_name="TGroupBox")
| CheckBox - '输出时画面保持原长宽比例'
(L286, T433, R436, B447)
| ['CheckBox2', '输出时画面保持原长宽比例CheckBox', '输出时画面保持原长宽比例']
| child_window(title="输出时画面保持原长宽比例", class_name="TCheckBox")
| ComboBox - ''
(L314, T410, R457, B429)
| ['设置为 宽度:ComboBox', 'ComboBox3']
| child_window(class_name="TComboBox")
| ComboBox - '1/2'
(L314, T369, R396, B388)
| ['ComboBox4', '按倍数缩小为ComboBox']
| child_window(title="1/2", class_name="TComboBox")
| Edit - '300'
(L402, T388, R429, B407)
| ['设置为 宽度:Edit0', '设置为 宽度:Edit', 'Edit5', '设置为 宽度:Edit1']
| child_window(title="300", class_name="TEdit")
| Edit - '400'
(L314, T388, R341, B407)
| ['设置为 宽度:Edit2', 'Edit6']
| child_window(title="400", class_name="TEdit")
| RadioButton - '设置为 宽度:'
(L232, T392, R308, B406)
| ['设置为 宽度:', '设置为 宽度:RadioButton', 'RadioButton3']
| child_window(title="设置为 宽度:", class_name="TRadioButton")
| RadioButton - '按倍数缩小为'
(L232, T372, R314, B386)
| ['RadioButton4', '按倍数缩小为RadioButton', '按倍数缩小为']
| child_window(title="按倍数缩小为", class_name="TRadioButton")
| RadioButton - '原始大小'
(L232, T351, R287, B366)
| ['原始大小', '原始大小RadioButton', 'RadioButton5']
| child_window(title="原始大小", class_name="TRadioButton")
| CheckBox - '输出时画面保持原长宽比例'
(L286, T433, R436, B447)
| ['CheckBox2', '输出时画面保持原长宽比例CheckBox', '输出时画面保持原长宽比例']
| child_window(title="输出时画面保持原长宽比例", class_name="TCheckBox")
| ComboBox - ''
(L314, T410, R457, B429)
| ['设置为 宽度:ComboBox', 'ComboBox3']
| child_window(class_name="TComboBox")
| ComboBox - '1/2'
(L314, T369, R396, B388)
| ['ComboBox4', '按倍数缩小为ComboBox']
| child_window(title="1/2", class_name="TComboBox")
| Edit - '300'
(L402, T388, R429, B407)
| ['设置为 宽度:Edit0', '设置为 宽度:Edit', 'Edit5', '设置为 宽度:Edit1']
| child_window(title="300", class_name="TEdit")
| Edit - '400'
(L314, T388, R341, B407)
| ['设置为 宽度:Edit2', 'Edit6']
| child_window(title="400", class_name="TEdit")
| RadioButton - '设置为 宽度:'
(L232, T392, R308, B406)
| ['设置为 宽度:', '设置为 宽度:RadioButton', 'RadioButton3']
| child_window(title="设置为 宽度:", class_name="TRadioButton")
| RadioButton - '按倍数缩小为'
(L232, T372, R314, B386)
| ['RadioButton4', '按倍数缩小为RadioButton', '按倍数缩小为']
| child_window(title="按倍数缩小为", class_name="TRadioButton")
| RadioButton - '原始大小'
(L232, T351, R287, B366)
| ['原始大小', '原始大小RadioButton', 'RadioButton5']
| child_window(title="原始大小", class_name="TRadioButton")
仔细找了一下,文件名后面的编辑框的属性为
| Edit - ''
(L259, T88, R429, B107)
| ['EXE/EXE 转 MP4Edit', 'Edit3']
所以我们可以通过控件的text或者title来查找控件。如:
edit = dlg_spec['']
edit = dlg_spec['Edit2']
edit = dlg_spec.Edit2
注意,对于输入控件Edit,一般不建议使用text内容绑定,因为Edit的text内容会发生变化。另外,绑定的控件也可能不唯一。对于title,我这里可能理解不够,属性显示的是Edit3,但实际上绑定的时候用的却是Edit2,也就是数字要减一。
如何操作控件
前面已经讲了如何找到一个控件,接下来就是怎么操作它了。对于Edit控件,要么就是向里面写内容,要么就是读里面的内容。
在这里,我们需要向Edit3写入要转换文件的路径(r’E:\test test .exe’),这里的文件名我特意在中间加了空格。
edit.set_text(r'E:\test test .exe')
edit.type_keys(r'E:\test test .exe',with_spaces = True)
上述代码第一种方法是直接设置edit的text,而第二种是在里面模拟键盘输入(如果字符串中没有空格,可以省略后面的参数),殊途同归。
但是实际上,使用第二种方法输入并没有什么效果,因为该编辑框设置了禁止输入(自己手动敲键盘,发现编辑框没有反应)。(这里埋了一个雷,在我们成功将路径写入编辑框的那刻,已经踩着了这颗雷。)
接着配置转换参数。
现在是10帧/秒,建议扩帧后不超过15帧/秒。所以也就没有必要扩帧了。
接着直接模拟点击转换吧。
dlg_spec.Button0.click()
不出所料,弹出“另存为”对话框。
假设我们按照默认的路径存储,那么这里只需要点击“保存”就可以了。
app['另存为']['保存'].click()
注意,所有窗口都应该在app中索引。
执行完上述语句后,发现弹出错误提示。
* 触着的雷终于爆炸了,哈哈!!!*
此路不通,欲知结果如何,接听下回分解。
本文已收录于以下专栏:
相关文章推荐
python自动化工具之pywinauto(一)python自动化工具之pywinauto一
pywinauto使用
一 判断程序的backend
二确定自动化入口点
三连接到进程
四 选择菜单项py...
Django版本:1.11
操作系统:Windows
Python:3.5这里以淘宝为例
这是一个商品的详情,这里有2个按钮功能,一个是立即购买,一个加入购物车,两者都是生成一个订单,但...
用requests库封装HTTPClient,用于http接口测试。其他接口寻找对应库。
在用SecureCRT连接ubuntu时出现了问题,借助此文解决了,部分进行了修改,谢谢该博主
使用终端软件SecureCRT 去连接Linux操作系统(该SecureCRT服务走端口22,协议是...
用Faker库,或者自己实现测试数据的生成器
/news/19231-50-jquery-photo-gallery-pluginsjQuery的画廊插件可以将分组图像和多媒体资料转成类似Flash的图...
首先,这两者最大共同点就是可以操作计算机,模拟人工输入和鼠标操作等等。不过这两者也有侧重点,PyAutoGUI侧重于鼠标,键盘,截图,消息框的功能,Pywinauto侧重对CS的操作,虽然都有键盘,鼠...
安装1.安装Python2.下载SendKeys并安装 (http://pypi.python.org/pypi/SendKeys)setup.py --install3.下载pywinauto并安装...
此框架内容已更新到其他地址,点我查看python 轻量单元测试框架JzFramework下载
Github项目地址目录结构说明
文件/文件夹
startup.py
封装logging库,写日志。
他的最新文章
讲师:吴岸城
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)

我要回帖

更多关于 如何配置jdk环境变量 的文章

 

随机推荐