搜索后,我无法找到良好的响应:
我正在尝试使用pywinauto自动化公司软件。我尽可能地使用app.print_control_identifiers()
。这是上帝派来的!感谢Youtube上的人们和Vasily的帖子。请参阅下面的代码
在安装过程中,它希望安装一个MS VC++可再发行版本,我可以处理
下一个问题是告诉我Adobe Flash Player的版本(我知道是吗?)不兼容。我已经使用Inspect识别了需要单击以继续的OK按钮。以下是代码(为公众消费清理):
from pywinauto.application import Application
import time
app = Application(backend="uia").start("C:\\Users\\me\\program.exe")
time.sleep(5)
#This addresses the need to install Microsoft C++ Redistributable
dlg = app['program - InstallShield Wizard']
dlg.Install.click()
time.sleep(5)
#This is to get past an install failure and to move on
dlg.Yes.click()
time.sleep(10)
#This is a dialog box saying that some component is incompatible and this is where I am stuck
# And the window title now just says 'program' vs. 'program - InstallShield Wizard'
new_dlg = app['program']
new_dlg.OK.click()
以下是故障信息:
C:\Python37\python.exe C:/Users/me/PycharmProjects/myProject/pywinauto_install.py
Traceback (most recent call last):
File "C:\Python37\lib\site-packages\pywinauto\application.py", line 258, in __resolve_control
criteria)
File "C:\Python37\lib\site-packages\pywinauto\timings.py", line 458, in wait_until_passes
raise err
pywinauto.timings.TimeoutError
在处理上述异常期间,发生了另一个异常:
Traceback (most recent call last):
File "C:/Users/me/PycharmProjects/myProject/pywinauto_install.py", line 23, in <module>
new_dlg.OK.click()
File "C:\Python37\lib\site-packages\pywinauto\application.py", line 379, in __getattribute__
ctrls = self.__resolve_control(self.criteria)
File "C:\Python37\lib\site-packages\pywinauto\application.py", line 261, in __resolve_control
raise e.original_exception
File "C:\Python37\lib\site-packages\pywinauto\timings.py", line 436, in wait_until_passes
func_val = func(*args, **kwargs)
File "C:\Python37\lib\site-packages\pywinauto\application.py", line 203, in __get_ctrl
dialog = self.backend.generic_wrapper_class(findwindows.find_element(**criteria[0]))
File "C:\Python37\lib\site-packages\pywinauto\findwindows.py", line 87, in find_element
raise ElementNotFoundError(kwargs)
pywinauto.findwindows.ElementNotFoundError: {'best_match': 'program', 'backend': 'uia', 'process': 22184}
Process finished with exit code 1
我正在根据我看到的一篇文章创建新的_dlg,所以如果这是错误的,请拍拍我的手。我不是一个训练有素的开发人员。 谢谢
要检查顶级对话框窗口的文本,请打印以下内容:
然后将正确的代码作为dict键而不是
app['program']
复制到代码中。更灵活的方式看起来是这样的:相关问题 更多 >
编程相关推荐