用pywinauto实现qt自动化(代码片段)

author author     2023-04-30     232

关键词:

我试图使用pywinauto自动化一个QT应用程序,问题是pywinauto似乎无法点击或选择大多数对象,当它这样做,他们似乎是完全随机的那些我指定。即使使用诸如"点击输入"正确执行,但项目从未被实际点击。Pywinauto显然能够识别我试图点击的按钮,甚至将其打印为" "。pywinauto.application.WindowSpecification"对象。我注意到pywinauto在QT应用上有些问题,所以希望得到任何帮助。谢谢你的帮助。

anki_App = Application(backend="uia").start(anki_Path)
anki_App.top_window().wait("Visible") #Wait for Anki's sync to server
anki = anki_App.window(title_re=r".* - Anki", class_name="AnkiQt")
anki['Import File'].click_input()

从结果中摘录 anki.print_control_identifiers() 因为内容太大。

Button - 'Import File'    (L1751, T875, R1867, B910)
['Import File', 'Import FileButton', 'Button6']
child_window(title="Import File", control_type="Button")

编辑:做了一些建议的修改,但问题仍然存在。点击事件似乎没有带来任何错误,但实际上却没有发生 "点击"。

答案

在Pywinsauto的github社区里问了一圈后,我能够用下面的方法解决这个问题。

anki_App = Application(backend="uia").start(anki_Path)
anki_App.top_window().wait("Visible") #Wait for Anki's sync to server
anki = anki_App.window(title_re=r".* - Anki", class_name="AnkiQt")
anki['Browse'].click_input(coords=(anki['Browse'].rectangle().left -1, anki['Browse'].rectangle().top -1), absolute = True)

问题是坐标不对 虽然他们很接近,所以点击左上角就可以了。再次感谢用户airelil帮助我解决了这个问题。

问题链接

python自动化框架:pywinauto实现博客之星自动化评论(代码片段)

场景:2021年度博客之星开始评选了,又是各路豪杰实践自身技术能力的时刻,平时都是写文章维护粉丝好友度,现在才是实打实的展现技术😃本分只是python框架的实践,不建议恶意推广,后果自负。... 查看详情

python自动化框架:pywinauto实现博客之星自动化评论(代码片段)

...而复始。今天咱不讲爬虫,讲python的自动化测试框架pywinauto如何实现模拟手动操作(相同的还有pyAutoGui这个库),制造一个有血有肉的回复机器,爬虫的方式太暴力了,除了反爬外,还会给官方带来大... 查看详情

pywinauto客户端自动化---窗口进行截图(代码片段)

...么在做客户端的时候,应该怎么进行截图呢?窗口截图在pywinauto中存在自带的截图函数 capture_as_image() 源码:defcapture_as_image(self,rect=None):"""ReturnaPILimageofthecontrol.SeePILdocumentationtoknowwhatyouca 查看详情

聊聊pc端自动化最佳方案-pywinauto(代码片段)

...化最佳方案-WinAppDriver有小伙伴后台给我留言,说「 pywinauto」作为WinAppD 查看详情

pywinauto桌面应用自动化01--安装和启动(代码片段)

目录一、安装Pywinauto二、定位元素的工具三、启动和连接应用程序1、启动应用程序2、连接已经打开的应用程序1)通过进程号连接2)通过窗口句柄连接一、安装Pywinautopipinstallpywinauto官方文档:Whatispywinauto—pywinauto0.6.... 查看详情

⭐ui自动化工具轻松实现微信消息收发⚡朋友圈爬取⁉️(代码片段)

...xff0c;我是小小明。😊前段时间有两位大佬分别分享了PyWinAuto或WinAppDriver实现对桌面程序的自动化控制和数据采集。👍不过PyWinAuto实现微信朋友圈采集只是直接打印出树形结构,后续真要存储数据,不仅耗时过长... 查看详情

python+pywinauto写自动化测试脚本时,怎么获取windows软件页面元素按钮啊?刚开始用这个不太明白?

Win32APIbackend=win32-一个默认后端现在MFC,VB6,VCL,简单的WinForms控件和大多数旧的旧应用程序MSUI自动化backend=uiaWinForms,WPF,Store应用程序,Qt,浏览器参考技术A这个问题很专业,百度相关贴吧里应该有高手的专业回答。 参考技术B... 查看详情

qt实现软件自动更新的一种简单方法(代码片段)

前言最近在学习Qt开发上位机,想实现一个检查更新的功能,网上搜索了一大圈,发现实现过程都很复杂,关键是代码看不懂,所以就自己开发一种简单的方式来实现。实现效果如下:点击“检查更新”按钮,如果当前版本低于... 查看详情

pywinauto处理ui自动化

pywinauto处理UI自动化Python的pywinauto模块来处理Windows控件的UI操作。 1.首先搭建pywinauto环境。 1).可以参考vncdotool-AcommandlineVNCclient安装python2.7.5,Twisted和PIL。 2).安装elementtree(elementtree-1.2.7-20070827-preview.win32.exe)和ctype... 查看详情

pywinauto进阶练习(代码片段)

case1.画图工具简单练习#_*_coding=utf-8_*_importtimefrompprintimportpprintimportloggingfromloggingimporthandlers#frompywinautoimportactionloggerfrompywinautoimportApplication#importargparse#parser=argparse.Arg 查看详情

qt中qmenu的菜单关闭处理方法(代码片段)

Qt中qmenu的实现三四千行...当初有个特殊的需求,要求菜单的周边带几个像素的阴影,琢磨了半天,用QMenu做不来,就干脆自己用窗口写一个然而怎么让菜单消失却非常麻烦点击菜单项点击其他地方被其他窗口遮挡按键啊然后用判断焦... 查看详情

qt实现窗口半透明显示(代码片段)

一、效果图1、主界面   2、子界面   二、代码//①设置界面基本颜色this->setAutoFillBackground(true);//属性控制小部件背景是否自动填充QPalettepalette=this->palette();palette.setColor(QPalette::Base,QColor(0,0,0, 查看详情

用python实现自动化翻译(代码片段)

“爬Google翻译还是需要点技巧的“引言在做全球应用中,处理每个国家的翻译是必不可少的,也是最棘手的问题。为了保证翻译是正确的,这里需要借用Google翻译的接口,为此,特意写了一个python脚本来对接go... 查看详情

windowsgui程序自动化之pywinauto

WindowsGUI程序自动化之pywinauto一.pywinauto的安装与配置  官方英文版文档网址:https://pywinauto.readthedocs.io/en/latest/index.html  >>>>>>待续   查看详情

pywinauto常用03--type_keys(代码片段)

...括起来输出空格,加上入参,with_spaces=Truefrompywinauto.applicationimportApplicationapp=Application(backend="uia").start("notepad.exe")#输出特殊字符、%、空格comment='123456%'app['无标题-记事本'].type_keys(comment,... 查看详情

visualstudiocode开发qt应用程序实现自动提示语法高亮代码导航编译和调试(代码片段)

...版本号仍然停留在4.3上,某些功能迟迟等不来更新和实现,特别是——调试功能。在非用户代码中出现的ASSERT错误,QTCreator不告诉用户代码堆栈,只显示第三方代码哪里ASSERT,让人无语。虽然UI开发、SIGNAL-SLOT... 查看详情

qt系列——优美界面设计实现不同换肤(代码片段)

一、QT不同皮肤设置本程序的BaseWindow是继承于QWidget,如果大家想要继承QMainWindow,则需要把BaseWindow的基类改为QMainWindow。去掉窗口自带的边框,Qt中直接用一下代码即可去除窗口边框效果。//1.------设置窗体标题栏隐藏... 查看详情

qt系列——优美界面设计实现不同换肤(代码片段)

一、QT不同皮肤设置本程序的BaseWindow是继承于QWidget,如果大家想要继承QMainWindow,则需要把BaseWindow的基类改为QMainWindow。去掉窗口自带的边框,Qt中直接用一下代码即可去除窗口边框效果。//1.------设置窗体标题栏隐藏... 查看详情