【发布时间】:2021-11-11 02:44:28
【问题描述】:
我在 vscode ide 上运行我的代码或使用 cmd 都可以,但是当我使用 jenkins 运行 windows 批处理 cmd 时会失败(应用程序启动没有用),我的 jenkins 也可以在管理员上运行
C:\ProgramData\Jenkins\.jenkins\workspace\Agent_Automation>python test_enf_ins_gui.py
Traceback (most recent call last):
File "C:\Program Files\Python37\lib\site-packages\pywinauto\timings.py", line 436, in wait_until_passes
func_val = func(*args, **kwargs)
File "C:\Program Files\Python37\lib\site-packages\pywinauto\findwindows.py", line 87, in find_element
raise ElementNotFoundError(kwargs)
pywinauto.findwindows.ElementNotFoundError: {'class_name': 'MsiDialogCloseClass', 'backend': 'uia', 'visible_only': False}
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "test_enf_ins_gui.py", line 5, in <module>
r'C:\Users\txone\Downloads\Install.exe').connect(class_name="MsiDialogCloseClass",timeout=20)
File "C:\Program Files\Python37\lib\site-packages\pywinauto\application.py", line 994, in connect
*(), **kwargs
File "C:\Program Files\Python37\lib\site-packages\pywinauto\timings.py", line 458, in wait_until_passes
raise err
pywinauto.timings.TimeoutError
【问题讨论】:
-
对于一些现代应用程序,您可能还需要
Applcation(backend="uia")。默认的“win32”后端使用旧的 Win32 API 来获取文本数据和层次结构。我猜您使用“win32”后端,因为使用了 class_name。对于“uia”,它通常是 control_type。但是“win32”的运行速度更快。