GUI 窗口查询工具

  spy++lite

pywinauto 模块 原理:

  https://www.cnblogs.com/testlife007/p/4710599.html

pywhinayto 常用功能

  http://hao.imrrp.com/blog.php?id=4538

  点击事件:

  https://blog.csdn.net/weixin_40161673/article/details/83246861

捕捉

  https://blog.csdn.net/weixin_40161673/article/details/83246861

已摸索实践方法:

自动安装腾讯QQ:(软件默认为win32)

from pywinauto import application
import time #1.QQ自动安装
app = application.Application().start('D:\software_用户软件\QQ9.0.3.exe')
time.sleep(2) #2.获取 执行程序的窗体
# 在不知道窗体名称,可以报错的方式查找窗体名称
# window_title=['无标题-记事本']
# print(app[window_title].wrapper_object())
window_title='腾讯QQ安装向导' #3.查看一个窗体含有的控件,子窗体,菜单
# print(app[window_title].print_control_identifiers()) #4.触发窗体含有的控件,子窗体,菜单
#触发方式:app[window_title].child_window(title='窗体名',class_name="窗体类名") #.click() 点击事件
#.set_edit_text() 设置Edit
# 更多方式可以 通过help(app[window_title].child_window(class_name="Edit"))查到 #点开QQ安装自定义选项
app[window_title].child_window(title="自定义选项").click()
time.sleep(1) #修改默认安装路径
app[window_title].child_window(class_name="Edit").set_edit_text(r'D:\Program Files (x86)\Tencent\QQ') #取消自启动
app[window_title].child_window(title="添加到快速启动栏").click()
app[window_title].child_window(title="开机自动启动").click() #执行安装
# print(app[window_title].print_control_identifiers())
# help(app[window_title].child_window(class_name="#32770").child_window(title="立即安装", class_name="Button").click())
app[window_title].child_window(class_name="#32770").child_window(title="立即安装", class_name="Button").click()
time.sleep(40)
# print(app[window_title].print_control_identifiers())
app[window_title].child_window(class_name="#32770").child_window(title="安装QQ浏览器", class_name="Button").uncheck_by_click()
app[window_title].child_window(class_name="#32770").child_window(title="安装QQ游戏 免费获取专属礼包", class_name="Button").uncheck_by_click()
app[window_title].child_window(class_name="#32770").child_window(title="安装QQ音乐播放器", class_name="Button").uncheck_by_click()
app[window_title].child_window(class_name="#32770").child_window(title="完成安装", class_name="Button").click()

自动安装话务软件:(软件默认为uia)

这个软件自动安装有点特殊,启动的进程不是窗口进程,所有拿不到窗口对象

所以采用connect 进程号的方式去获取 启动的窗口对象.

from pywinauto import application
import time
import psutil
import re
import os os.popen('D:\software_用户软件\X-Lite电话系统.exe')
time.sleep(1)
PID = 0
for proc in psutil.process_iter():
try:
pinfo = proc.as_dict(attrs=['pid', 'name'])
except psutil.NoSuchProcess:
pass
else:
if re.match(r'^is.*?.tmp$',pinfo['name']):
PID = pinfo['pid']
# print(PID)
app = application.Application(backend='uia').connect(process=PID)
# print(app.window(class_name='TWizardForm').print_control_identifiers())
# print(dir(app.window(class_name='TWizardForm')))
app.window(class_name='TWizardForm').child_window(title="Next >",control_type="Button").click()
# print(app.window(class_name='TWizardForm').print_control_identifiers())
app.window(class_name='TWizardForm').child_window(title="I accept the agreement", control_type="RadioButton").click()
app.window(class_name='TWizardForm').child_window(title="Next >", control_type="Button").click()
# print(app.window(class_name='TWizardForm').print_control_identifiers())
app.window(class_name='TWizardForm').child_window(title="To continue, click Next. If you would like t"
"o select a different folder, click Browse.",
control_type="Edit").set_edit_text(r'D:\Program Files (x86)\CounterPath\X-Lite')
app.window(class_name='TWizardForm').child_window(title="Next >",control_type="Button").click()
app.window(class_name='TWizardForm').child_window(title="Next >",control_type="Button").click()
time.sleep(2)
# print(app.window(class_name='TWizardForm').print_control_identifiers())
# print(dir(app.window(class_name='TWizardForm').child_window(title="Launch X-Lite", control_type="CheckBox")))
app.window(class_name='TWizardForm').child_window(title="Finish", control_type="Button").click()

python模块 - pywinauto(windows自动化安装软件)的更多相关文章

  1. Python的requests、greenlet和gevent模块在windows下安装

    一.requests模块在windows下安装 Linux系统下requests的安装方法在http://docs.python-requests.org/en/latest/user/install ...

  2. Python requests模块在Windows下安装

    发现一个爬虫库太方便了,而且支持python3! 安装方法在http://docs.python-requests.org/en/latest/user/install/#install很详细 只不过 ...

  3. [Python爬虫] 在Windows下安装PIP+Phantomjs+Selenium

    最近准备深入学习Python相关的爬虫知识了,如果说在使用Python爬取相对正规的网页使用"urllib2 + BeautifulSoup + 正则表达式"就能搞定的话:那么动态 ...

  4. python︱模块加载(pip安装)以及pycharm安装与报错解决方式

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 准备放下R开始学python,真是痛苦,因为找 ...

  5. python笔记:windows 下安装 python lxml

    原文:http://blog.csdn.net/zhaokuo719/article/details/8209496 windows 环境下安装 lxml python 1.首先保证你的python ...

  6. ansible通过yum/dnf模块给受控机安装软件(ansible2.9.5)

    一,使用yum/dnf模块要注意的地方: 使用dnf软件安装/卸载时,需要有root权限, 所以要使用become参数 说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnb ...

  7. Windows 7安装软件时无法将注册值写入注册表的处理方法

    1. 我们来确认一下,有没有安装什么软件把注册表给封了.如杀毒软件,防火墙等.把这些软件关了之后,再安装软件试试:如果不行,就把杀毒软件卸载了,再安装软件试试. 2. 更改组策略设置 步骤: 开始-运 ...

  8. [Python爬虫] 在Windows下安装PhantomJS和CasperJS及入门介绍(上)

    最近在使用Python爬取网页内容时,总是遇到JS临时加载.动态获取网页信息的困难.例如爬取CSDN下载资源评论.搜狐图片中的“原图”等,此时尝试学习Phantomjs和CasperJS来解决这个问题 ...

  9. 一、scrapy的下载安装---Windows(安装软件太让我伤心了)

    写博客就和笔记一样真的很有用,你可以随时的翻阅.爬虫的爬虫原理与数据抓取.非结构化与结构化数据提取.动态HTML处理和简单的图像识别已经学完,就差整理博客了 开始学习scrapy了,所以重新建了个分类 ...

随机推荐

  1. 20175310 《Java程序设计》第9周学习总结

    20175310 <Java程序设计>第9周学习总结 本周博客:https://www.cnblogs.com/xicyannn/p/10785915.html 教材学习内容总结 这周学习 ...

  2. 如何将Bitcoin比特币区块链数据导入关系数据库

    在接触了比特币和区块链后,我一直有一个想法,就是把所有比特币的区块链数据放入到关系数据库(比如SQL Server)中,然后当成一个数据仓库,做做比特币交易数据的各种分析.想法已经很久了,但是一直没有 ...

  3. Loadrunner学习资料

    辅导书籍(书的价值主要在学习的人,而不在书本身) 于涌 | 精通软件性能测试与LoadRunner实战京东 点击查看 柳胜 | 性能测试从零开始京东 点击查看适合零基础的同学学习 柳胜 | LoadR ...

  4. day05(数字类型,字符串类型,列表类型)

    一,复习: 1.顺序结构.分支结构.循环结构 2.if分支结构 if 条件: 代码块 elif 条件: 代码块 else: 代码块 # 可以被if转换为False:0 | '' | None | [] ...

  5. vue生命週期

    https://www.cnblogs.com/fly_dragon/p/6220273.html https://www.cnblogs.com/fly_dragon/p/6220273.html

  6. Qt 自定义按钮

    自定义控件的实现思路如下: a1.新建一个类,该类继承QPushbutton,由于QPushbutton继承于QWidget,因此可以直接在该继承类里面进行布局管理和挂载控件: a2.新建两个QLab ...

  7. Spring MVC 使用介绍(六)—— 注解式控制器(二):请求映射与参数绑定

    一.概述 注解式控制器支持: 请求的映射和限定 参数的自动绑定 参数的注解绑定 二.请求的映射和限定 http请求信息包含六部分信息: ①请求方法: ②URL: ③协议及版本: ④请求头信息(包括Co ...

  8. Java爬取12306余票

    一.前言 今年国庆和中秋一起放,虽然很欢快,但是没有票了!!! 于是自己倒腾了一个查询余票的小程序. 二.准备工作 1.先打开12306的页面 2.然后右键检查,点network 3.再点一下1230 ...

  9. Euler Circuit UVA - 10735(混合图输出路径)

    就是求混合图是否存在欧拉回路 如果存在则输出一组路径 (我就说嘛 咱的代码怎么可能错.....最后的输出格式竟然w了一天 我都没发现) 解析: 对于无向边定向建边放到网络流图中add(u, v, 1) ...

  10. 如何取消Paypal自动付款功能

    在国外在线服务消费肯定会常遇到PayPal的支付方式,有些人可能PayPal有些余额可能会用这个工具来支付,但付款后,可能服务因为不满意而退掉,但第二年却自动续约了?但明明服务已退掉,这该怎么处理呢? ...