如何使用python脚本自动化软件安装

时间:2015-01-12 12:19:22

标签: python automation installation

我是Python新手。我想自动化软件安装过程。情景如下

  

运行安装文件。在第一个屏幕上,它有两个按钮,取消。点击下一步,它进入下一个屏幕,有两个按钮,接下来,取消和一些输入数据是必需的。提供详细信息后,将显示完成或取消按钮。

在这里,我想编写一个自动执行此活动的python脚本。它应该识别按钮点击它,应该在任何需要的地方输入数据并完成安装。

实现这一功能

  1. Python API是必需的,如果有的话?
  2. 一些代码示例或教程的链接使用相同的。
    Sample image for referance
    谢谢!!

1 个答案:

答案 0 :(得分:9)

正如Rawing所说,pywinauto是Windows安装程序的不错选择。这是一个很好的示例视频:http://pywinauto.github.io/

等待下一页使用类似的内容:app.WizardPageTitle.wait('ready')
安装程序完成后:app.FinishPage.wait_not('visible')
对于编辑框输入:app.WizardPage.Edit.type_keys('some input path', with_spaces=True)
对于按钮点击,我建议click_input()作为更可靠的方法
如果要在许多计算机上自动安装应用程序,可以创建远程桌面或VNC会话,并在该会话中运行Python脚本的本地副本。只是不要最小化RDP或VNC窗口以防止GUI上下文丢失。丢失焦点是安全的,您可以在另一个窗口中继续在主机上工作,而不会影响远程安装

FastStone Image Viewer 4.6的简易安装脚本示例:

import os
from pywinauto.application import Application

fsv = Application(backend="win32").start("FSViewerSetup46.exe")

fsv.InstallDialog.NextButton.wait('ready', timeout=30).click_input()
fsv.InstallDialog.IAgreeRadioButton.wait('ready', timeout=30).click_input()
fsv.InstallDialog.Edit.Wait('ready', timeout=30).type_keys(os.getcwd() + "\FastStone Image Viewer", with_spaces=True)
fsv.InstallDialog.InstallButton.wait('ready', timeout=30).click_input()
fsv.InstallDialog.FinishButton.wait('ready', timeout=30).click_input()