我的意图是:
>步骤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 *** 作所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)