[PYTHON] Exécutez des applications Windows (héritées) avec le pilote d'application Windows

J'ai eu l'occasion d'écrire un test automatisé simple pour une application Windows héritée (Win32) à l'aide de Windows Application Driver, j'ai donc résumé la construction de l'environnement et le toucher. Je vais. [^ 1]

environnement

Environnement

  1. Changez Windows en ** Mode développeur **. Dans le champ de recherche, recherchez ** Paramètres du développeur ** et sélectionnez: devmode.png
  2. Installez Python. N'oubliez pas de passer le chemin: light_smile:
  3. Installez le pilote d'application Windows (https://github.com/microsoft/WinAppDriver). Tout ce que vous avez à faire est de télécharger et d'exécuter le MSI.

Essayez d'exécuter quelque chose avec le pilote d'application Windows

Tout d'abord, avant d'exécuter le script, démarrez Windows Application Driver à partir de l'invite de commande. Lorsqu'il démarre, il passe en état de veille.

c:\Program Files (x86)\Windows Application Driver>WinAppDriver.exe
Windows Application Driver listening for requests at: http://127.0.0.1:4723/
Press ENTER to exit.

Pour le moment, j'ai essayé de le déplacer et j'ai cherché un échantillon, mais cela ne fonctionne qu'avec une interface utilisateur anglaise: frowning2: Pour cette raison, j'ai écrit le flux de démarrage et de fermeture du Bloc-notes et de son enregistrement.

wda_test.py


import unittest
import os
import time
from appium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.common import exceptions

save_file = "c:\\temp\\test.txt"

def remove_save_file():
    if os.path.exists(save_file):
        os.remove(save_file)

class WindowsApplicationDriverTests(unittest.TestCase):

    @classmethod
    def setUpClass(self):
        remove_save_file()
        desired_caps = {}
        desired_caps["app"] = r"C:\Windows\System32\notepad.exe"
        self.driver = webdriver.Remote(
            command_executor='http://127.0.0.1:4723',
            desired_capabilities= desired_caps)

    @classmethod
    def tearDownClass(self):
        remove_save_file()
        self.driver.quit()

    def test_edit_and_close_with_save(self):
        #Saisie de caractères
        self.driver.find_element_by_class_name("Notepad").send_keys("abcdefg")
        #Instructions de sortie du bloc-notes
        self.driver.find_element_by_class_name("Notepad").send_keys(Keys.ALT, Keys.F4)
        #Attendez que le message de confirmation d'enregistrement s'affiche et appuyez sur le bouton Enregistrer
        time.sleep(1)
        self.driver.find_element_by_name("enregistrer(S)").send_keys(Keys.ENTER)
        #En attente de l'affichage de la boîte de dialogue Enregistrer sous
        time.sleep(3)
        #Entrez le nom du fichier
        self.driver.find_element_by_name("enregistrer sous").send_keys(save_file)
        #Appuyez sur le bouton Enregistrer
        self.driver.find_element_by_name("sauvegarder(S)").send_keys(Keys.ENTER)

if __name__ == '__main__':
    suite = unittest.TestLoader().loadTestsFromTestCase(WindowsApplicationDriverTests)
    unittest.TextTestRunner(verbosity=2).run(suite)

Veuillez noter que l'opération peut ne pas être effectuée comme prévu à moins que vous n'attendiez que le message ou la boîte de dialogue s'affiche. Vous pouvez voir que le Bloc-notes s'exécute automatiquement lorsque vous exécutez le script comme indiqué ci-dessous.

python wad_test.py

Impressions

référence

[^ 1]: Suite à l'écriture, il semble qu'elle se soit terminée sur le site de référence: sévère:

Recommended Posts

Exécutez des applications Windows (héritées) avec le pilote d'application Windows
Exécutez python avec PyCharm (Windows)
Exécutez SwitchBot avec Bleak sur Windows 10
Automatisez les tests d'applications Windows avec Windows Application Driver-Python Edition
Exécutez le servo avec Python sur ESP32 (Windows)
Développer des applications Windows avec Python 3 + Tkinter (Préparation)
Exécutez une application Web Python avec Docker
Automatisation de l'interface graphique avec le pilote d'application Python x Windows
Développer des applications Windows avec Python 3 + Tkinter (fichier exe)
Configuration pour exécuter l'application dans un sous-répertoire avec nginx + uwsgi
Exécutez Python avec VBA
Exécutez prepDE.py avec python3
Exécutez Blender avec python
Python à partir de Windows 7
Exécutez iperf avec python