当前位置:   article > 正文

Python UI自动化 编程(一) UIAutomation_python uiautomation

python uiautomation

Python UI自动化 编程

第一章 Python UI自动化 编程入门之打开文件夹双击文件



前言

最近学习了Python的UI自动化编程,打算记录一下学习经历,梳理一下知识框架。由于我也是初学者,如有错误欢迎指出!


提示:以下是本篇文章正文内容,下面案例可供参考

一、什么是Python UI自动化 编程

就我个人的理解,UI编程包括但不限于UI界面的开发,UI界面的测试。而本系列文章的主要侧重于UI界面的自动化操作。通过一段代码实现电脑自行点击、打开某文件或者修改某进程的操作。

利用Python编写脚本实现UI界面的自动化操作,解放双手,提高办公效率。

二、环境说明

1、Python环境:Python 3.8

2、IDE: Pycharm

3、使用的库:UIAutomation

三、使用步骤

1.引入库: uiautomation

打开Pycharm 点击左上角File-Settings
请添加图片描述

点击Project-Python-Interpreder-加号

请添加图片描述

在搜索栏输入【uiautomation】点击搜索结果-Install Package
请添加图片描述

2.打开文件夹

代码如下(示例):

os.startfile(folder_path)
  • 1

该处使用os库重点的startfile()打开文件夹

3、找到该文件夹

使用软件Inspect查找该文件夹的树形结构

请添加图片描述

可以看到我的Typora文件夹的目录树形图。我选择的区域是列表中的白色区域,所以Inspect给我返回的树形图就一直到了"项目视图-列表",这样我们就可以利用UIAutomation通过树状图找到文件夹的项目列表了。

代码如下

list = uiautomation.WindowControl(searchDepth=1, ClassName="CabinetWClass")\
	.ListControl(ClassName="UIItemsView")
return list
  • 1
  • 2
  • 3

searchDepth是搜索深度,根据刚刚的树形图有7级深度。我们当然可以一级一级往下写,这样不但准确,而且搜索速度也快。但是如果树状图深度太大,我们也可以挑选中间节点来写,更改相应的searchDepth参数就可以了。ClassName是每个节点的ClassName,同时也可以指定参数Name。而WindowControl、ListControl这些主要是看Inspect软件找到的UI控制类型,如下图这种情况,该节点则调用ListControl。而所有的这些节点信息都可以从软件Inspect找到。
请添加图片描述

4、双击Typora.exe

我们已经找到了项目列表了,所以我们也可以找到列表中的元素,根据Inspect定位元素节点后,我们可以通过UIAutomation来找到该节点:

list_item = uiautomation.WindowControl(searchDepth=1, ClassName="CabinetWClass")\
	.ListControl(ClassName="UIItemsView")\
	.ListItemControl(Name="Typora.exe")
return list_item
  • 1
  • 2
  • 3
  • 4

如果我们想要点击或者双击该文件只需:

list_item.Click() # 单击
list_item.DoubleClick() # 双击
  • 1
  • 2

5、代码总览

import os
import uiautomation as auto


def show_folder(folder_path):
  """
  打开文件夹
  :param folder_path:
  :return:
  """
  os.startfile(folder_path)


def findTarget():
  """
  uiautomation
  :param filename: 文件名
  :return:
  """
  target = auto.WindowControl(searchDepth=1, ClassName="CabinetWClass") \
      .ListControl(ClassName="UIItemsView")\
      .ListItemControl(Name="Typora.exe")
  return target


if __name__ == '__main__':
  show_folder("D:\\Typora")
  target = findTarget()
  target.DoubleClick()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

总结

以上就是今天要讲的内容,本文仅仅简单介绍了UIAutomation的使用,而UIAutomation提供了大量能使我们快速便捷地操作UI界面。这篇文章仅仅是开始,接下来我也将继续学习继续记录。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/476406
推荐阅读
相关标签
  

闽ICP备14008679号