如何通过pywinauto对Button或Text字段执行Click *** 作

如何通过pywinauto对Button或Text字段执行Click *** 作,第1张

概述我正在使用pywinauto自动化点击DiffDaff软件上的一些按钮. 我的意图是: >步骤1:打开DiffDaff软件 >第2步:点击“关于”按钮 from pywinauto.application import Applicationapp = Application.start("C:\Program Files\DiffDaff\DiffDaff.exe")app.About. 我正在使用pywinauto自动化点击DiffDaff软件上的一些按钮.

我的意图是:

>步骤1:打开DiffDaff软件
>第2步:点击“关于”按钮

from pywinauto.application import Applicationapp = Application.start("C:\Program files\DiffDaff\DiffDaff.exe")app.About.Click()

但是,我陷入了第2步,控制台显示错误:

file "build\bdist.win32\egg\pywinauto\application.py",line 238,in __getattr__  file "build\bdist.win32\egg\pywinauto\application.py",line 788,in _resolve_controlpywinauto.findbestmatch.MatchError: Could not find 'About' in '['',u'DiffDaff - Compare files,Folders And Web Pages',u'Internet Explorer_HIDden',Folders And Web PagesDialog','Dialog']'

哪里,”,u’DiffDaff-比较文件,文件夹和网页’,u’Internet Explorer_HIDden’,文件夹和网页对话’,’对话’是sotfware的标题

此外,使用命令’app.dialogs.print_control_IDentifIErs()’来了解’关于’按钮的确切位置,有输出:

button - '&About'   (L750,T388,R834,B411)    '&About' '&Aboutbutton' 'button3'

但是很难理解上面的参数(L750,……的内容/位置) – 你想解释上面所有参数的平均值吗?

以及执行“点击”按钮的方式?

谢谢.

解决方法 pywinauto需要从Application对象到控制方法的2级层次结构.任何电话的结构都是

app.<Dialogname>.<Controlname>.<method>(<params>)

在你的情况下它应该看起来像

app.Dialog.About.click()

如果你需要更真实的点击,请使用click_input()移动光标并以用户身份点击控件. click()只发送WM_CliCK,它也不太可靠.

print_control_IDentifIErs()方法打印以下信息:

<ControlType> - '<name a la WindowText>' (<rectangle>)                possible names which are most likely useful for object attribute access

提到的代码等同于以下内容:

app.window(best_match='Dialog',top_level_only=True).child_window(best_match='About').click()

pywinauto通过重写__getattribute__方法简化了这种构造.

总结

以上是内存溢出为你收集整理的如何通过pywinauto对Button或Text字段执行Click *** 作全部内容,希望文章能够帮你解决如何通过pywinauto对Button或Text字段执行Click *** 作所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1077806.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存