最近在学习yinkaisheng大神写的uiautomation模块,Depth和searchDepth一直使用不好,明明Depth=3,居然可以用searchDepth=1找到,网上也没找到答案,就自己试验了多次,终于发现了问题所在(主要是人比较笨),同时纠正下大神写的文档一处错误

自我理解:

searchDepth:查询的范围深度,基于当前所在控件再往下的深度,比如当前的listCtrl已经Depth=3了,如果要查listCtrl下Depth=5的控件,则searchDepth≥2都可查询当前这个控件

Depth:查询某一深度的控件,基于当前所在控件,再往下一个深度,只在那个深度进行查询,比如当前的listCtrl已经Depth=3了,如果要查listCtrl下Depth=5的控件,则Depth=2才能查到当前这个控件

图文解释:

用记事本做例子,代码是点击记事本的关闭按钮,执行代码如下:

notepadWindow = auto.WindowControl(searchDepth=1, ClassName='Notepad')
notepadWindow.ButtonControl(Depth=2,Name='关闭').Click()
通过automation.py捕捉到记事本的控件信息,并进行标记,可以很清楚的理解Depth、searchDepth:

由上图,我们如果想点击关闭按钮,那我们可以有好几种写法,如下:

1. 1 定位到记事本标题后再定位关闭: (标题是notepadWindow的下1层,所以Depth=1,关闭是标题的下一层,所以这个Depth也等于1)

notepadWindow.TitleBarControl(Depth=1).ButtonControl(Depth=1,Name='关闭')

1. 2 如果用searchDepth去写,只要searchDepth大于1,都可以查到,查到即停止

notepadWindow.TitleBarControl(Depth=1).ButtonControl(searchDepth=1,Name='关闭')
或:notepadWindow.TitleBarControl(Depth=1).ButtonControl(searchDepth=2,Name='关闭')

2. 1 直接定位到关闭按钮:(关闭是notepadWindow的下2层,所以Depth=2)

notepadWindow.ButtonControl(Depth=2,Name='关闭')

2. 2 如果用searchDepth去写,只要searchDepth大于2,都可以查到

notepadWindow.ButtonControl(searchDepth=2,Name='关闭')
或:notepadWindow.ButtonControl(searchDepth=3,Name='关闭')
 

注:如果查询参数中有Depth了,就不需要写searchDepth,Depth会把值赋值给searchDepth进行使用

整个分享就是这样啦,如果有什么不对的地方还请见谅

python桌面应用自动化,uiautomation模块的Depth和searchDepth心得的更多相关文章

  1. Python运维自动化psutil 模块详解(超级详细)

    psutil 模块 参考官方文档:https://pypi.org/project/psutil/ 一.psutil简介 psutil是一个开源且跨平台(http://code.google.com/ ...

  2. Python+Selenium自动化-安装模块和浏览器驱动操作方法

    Python+Selenium自动化-安装模块和浏览器驱动操作方法 1.安装模块文件 pip install selenium 2.安装浏览器驱动 我们主要用的浏览器驱动有chrome浏览器.fire ...

  3. python+pytest接口自动化(16)-接口自动化项目中日志的使用 (使用loguru模块)

    通过上篇文章日志管理模块loguru简介,我们已经知道了loguru日志记录模块的简单使用.在自动化测试项目中,一般都需要通过记录日志的方式来确定项目运行的状态及结果,以方便定位问题. 这篇文章我们使 ...

  4. Python自动化开发 - 模块与包

    本节内容 一.模块  1.import module 2.from module  import 3.from module  import * 4.模块的__name__属性 5.模块搜索路径 6. ...

  5. python+pytest接口自动化(15)-日志管理模块loguru简介

    python自带日志管理模块logging,使用时可进行模块化配置,详细可参考博文Python日志采集(详细). 但logging配置起来比较繁琐,且在多进行多线程等场景下使用时,如果不经过特殊处理, ...

  6. Python第五章__模块介绍,常用内置模块

    Python第五章__模块介绍,常用内置模块 欢迎加入Linux_Python学习群  群号:478616847 目录: 模块与导入介绍 包的介绍 time &datetime模块 rando ...

  7. python+request接口自动化框架

    python+request接口自动化框架搭建 1.数据准备2.用python获取Excel文件中测试用例数据3.通过requests测试接口4.根据接口返回的code值和Excel对比 但本章只讲整 ...

  8. Python实现浏览器自动化操作

    Python实现浏览器自动化操作 (2012-08-02 17:35:43) 转载▼     最近在研究网站自动登录的问题,涉及到需要实现浏览器自动化操作,网上有不少介绍,例如使用pamie,但是只是 ...

  9. [转载]Python实现浏览器自动化操作

    原文地址:Python实现浏览器自动化操作作者:rayment   最近在研究网站自动登录的问题,涉及到需要实现浏览器自动化操作,网上有不少介绍,例如使用pamie,但是只是支持IE,而且项目也较久没 ...

  10. Python内置的urllib模块不支持https协议的解决办法

    Django站点使用django_cas接入SSO(单点登录系统),配置完成后登录,抛出“urlopen error unknown url type: https”异常.寻根朔源发现是python内 ...

随机推荐

  1. 【Vue】Vue开源样式库 Vuex的使用 vuex的执行流程 Vue-router的使用 路由跳转 路由守卫

    目录 昨日回顾 纯净的Vue项目 今日内容 0 开源样式库 1 Vuex 的使用 1.1 vuex的执行流程图 Vuex的使用 购物车案例 2 Vue-router的使用 2.1 基本使用 2.2 路 ...

  2. 【Gerald and Giant Chess】

    一道计数类DP例题~~~ ps:P党似乎不多了-- 我这只蒟蒻第一次写题解,而且计数类DP还是早上刚学的,现学现用,或者说是所谓的"浅谈"一番吧!况且这题写题解的人似乎并不多(大佬 ...

  3. LG P5043 树同构

    \(\text{problem}\) 无根树同构的判断 \(\text{Analysis}\) 考虑树哈希,注意使用较正确的哈希方法 无根树同构有个性质 只要判断以这两棵树的重心为根是否同构即可 \( ...

  4. CF1742G Orray

    题目传送门 思路 大抵算是一道位运算入门题? 首先为了使 \(b_i\) 的字典序最大,我们注意到 \(b_1=a_1\),所以 \(a_1\) 必然是序列中最大的那个数. 接下来考虑贪心,设当前已经 ...

  5. Hbase学习三:Hbase常用命令总结

    转载请注明出处: 1.Hbase连接 1.1.进入hbase命令行 hbase shell # 或 bin/hbase shell 1.2.查看帮助 help 1.3.查看所有表 list 2.表操作 ...

  6. JS弹窗遮罩 POP

    html: <div class="popBox"> <div class="pb"> <span class="clo ...

  7. Vue学习笔记之表单绑定

    1. 概述 1.1. 什么是数据的双向绑定 Vue.js是一个MV VM框架, 即数据双向绑定, 即当数据发生变化的时候, 视图也就发生变化, 当视图发生变化的时候,数据也会跟着同步变化.这也算是Vu ...

  8. 初始化安装后 Nacos 动态路由配置不生效

    一.问题描述 1.每次初始化安装整套项目,包括安装 Nacos 和其他服务还有mysql,redis等其他中间件,安装后 Nacos 获取不到 nacos 路由信息(包括后续新写入动态路由配置)!只有 ...

  9. 常用的hive sql

    细节:sql 中有涉及到正则匹配函数的,要注意转义符号 因为在不同语言下正则匹配规则是否需要加转义符号是不同的,举例,regexp_replace 函数,在hive sql的正则匹配规则的 \d+ 需 ...

  10. ASP动态网页(网站)设计教程

    ASP动态网页(网站)设计教程 文件名 大小 ASP获取时间函数大全 35KB 项目6 ASP数据表数据操作功能设计.pptx 3.34 MB 项目5 WEB数据库与数据库管理.pptx 3.34 M ...