我需要自动化某些产品的安装过程,但它必须通过传递InstallAnywhere wizard
精确安装(这是安装过程的GUI测试,所以静默安装不起作用)。有什么建议怎么做吗?
我想主要问题是安装文件(*.exe)只是提取器,它将所需文件提取到临时文件夹,然后运行java应用程序。
您可以尝试pywinauto在Windows上测试它。安装程序的Java部分可能需要新的"UIA"后端,该后端将于三月份发布。对于早期测试,您可以尝试以下步骤:
- 安装 pyWin32 并按
pip install pypiwin32
和pip install comtypes
进行组合。 - 通过
python setup.py install
安装pywinauto的UIA分支。
请尝试以下代码:
import pywinauto
pywinauto.backend.activate('uia')
app = pywinauto.Application().start('your_installer_path.exe')
app.ApproximateMainWindowName.Wait('ready', timeout=15)
app.ApproximateMainWindowName.PrintControlIdentifiers()
PrintControlIdentifiers
输出是进一步步骤的提示。窗口上的控件可能有访问名称。目前只有 ClickInput()
和 TypeKeys('something')
等基本功能才能正常工作。
可以在此处建议控件的可用方法:
app.MainWindow.OKButton.WrapperObject(). # methods list can be displayed here in IDLE or Visual Studio Python Tools
app.MainWindow.OKButton.WrapperObject().ClickInput() # code for debugging
#app.MainWindow.OKButton.ClickInput() # it works the same way, for production code
如果某些内容不起作用,请随时寻求更多帮助。
Python 脚本可能需要以管理员身份运行才能访问 GUI。或者添加 python 的清单.exe带有 uiAccess="true"
.