无法在pywinauto中为我的桌面应用程序使用print_control_identifiers()

时间:2017-04-03 05:09:05

标签: python-3.x ui-automation pywinauto

您好我无法在我的桌面应用程序中使用“print_control_identifiers()”。 我正在使用a)Python 3.5.3(32位,因为我的应用程序我自动化是32位) b)Pywinauto 0.6.2。 我的简单代码如下:

`from pywinauto import Application
app = Application(backend="uia")    
app = Application().start(r"C:\Program Files (x86)\Trane\TRACE 3D  Plus\TRACE™ 3D Plus.exe")  
app['TRACE™ 3D Plus'].print_control_identifiers()`

当我运行上面的命令时,我在命令提示符下得到以下内容:

Traceback (most recent call last):
File "D:\Python\lib\site-packages\pywinauto\application.py", line 243, in   __re
solve_control
criteria)
File "D:\Python\lib\site-packages\pywinauto\timings.py", line 424, in     wait_until_passes
raise err
pywinauto.timings.TimeoutError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "inspect.py", line 4, in <module>
app['TRACE\u2122 3D Plus'].print_control_identifiers()
File "D:\Python\lib\site-packages\pywinauto\application.py", line 573, in  prin
t_control_identifiers
this_ctrl = self.__resolve_control(self.criteria)[-1]
File "D:\Python\lib\site-packages\pywinauto\application.py", line 246, in __re
solve_control
raise e.original_exception
File "D:\Python\lib\site-packages\pywinauto\timings.py", line 402, in   wait_unt
il_passes
func_val = func(*args)
File "D:\Python\lib\site-packages\pywinauto\application.py", line 188, in __ge
t_ctrl
dialog = self.backend.generic_wrapper_class(findwindows.find_element(**crite
ria[0]))
File "D:\Python\lib\site-packages\pywinauto\findwindows.py", line 84, in   find_
element
elements = find_elements(**kwargs)
File "D:\Python\lib\site-packages\pywinauto\findwindows.py", line 294, in find
_elements
elements = findbestmatch.find_best_control_matches(best_match, wrapped_elems
)
File "D:\Python\lib\site-packages\pywinauto\findbestmatch.py", line 534, in  fi
nd_best_control_matches
raise MatchError(items = name_control_map.keys(), tofind = search_text)
pywinauto.findbestmatch.MatchError: Could not find 'TRACE\u2122 3D Plus' in   'dic
t_keys([])'

有谁能告诉我问题是什么以及我可以做些什么来解决它?

提前致谢!

1 个答案:

答案 0 :(得分:0)

替换这些命令

app = Application(backend="uia")    
app = Application().start(r"C:\Program Files (x86)\Trane\TRACE 3D  Plus\TRACE™ 3D Plus.exe")

这一个:

app = Application(backend="uia").start(r'"C:\Program Files (x86)\Trane\TRACE 3D  Plus\TRACE™ 3D Plus.exe"')

因为如果不使用任何参数,则使用默认app重新创建backend="win32"对象。如果很难理解,我建议先学习Python课程。这里需要基本的Python编程技能来理解正在发生的事情。