Cómo usar el script de Python para automatizar la instalación del software

Soy nuevo en Python. Quiero automatizar el proceso de instalación del software. El escenario es el siguiente.

Ejecute el archivo de instalación. En la primera pantalla tiene dos botones a continuación, cancelar. Al hacer clic en siguiente, se pasa a la siguiente pantalla con dos botones, a continuación, se cancela y se requieren algunos datos de entrada. Después de que se proporcionen los detalles, se mostrará el botón finalizar o cancelar.

En esto quiero escribir un script de Python que automatice esta actividad. Debe identificar el botón, haga clic en él, ingrese los datos donde sea necesario y finalice la instalación.

Para lograr esta funcionalidad.

  1. Se requiere la API de Python, si la hay?
  2. Algunos ejemplos de código o enlace de los tutoriales para utilizar el mismo.
    Imagen de muestra para referencia
    ¡¡Gracias!!

Como mencionó Rawing, pywinauto es una buena opción para el instalador de Windows. Aquí hay un buen video de muestra: http://pywinauto.github.io/

Para esperar en la página siguiente, use algo así: app.WizardPageTitle.wait('ready')
Cuando finalizó la instalación: app.FinishPage.wait_not('visible')
Para la entrada del cuadro de edición: app.WizardPage.Edit.type_keys('some input path', with_spaces=True)
Para hacer clic en los botones, recomendaría click_input() como método más confiable.

Si desea instalar la aplicación en muchas máquinas automáticamente, puede crear una sesión de Escritorio remoto o VNC y ejecutar una copia local de la secuencia de comandos de Python dentro de esa sesión. Simplemente no minimice la ventana de RDP o VNC para evitar la pérdida de contexto de la GUI. Perder el enfoque es seguro y puede continuar su trabajo en la máquina maestra en otra ventana sin afectar la instalación remota.

Ejemplo de script de instalación fácil para 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()