Il existe des sites célèbres tels que Selenium sur le Web, mais j'ai l'impression qu'il n'y a pas d'outil de facto pour faire fonctionner l'interface graphique de Windows.
En réalité, il existe de nombreuses options, je vais donc les résumer ici.
ahk
AutoHotkey wrapper pour Python.
Vous trouverez ci-dessous un exemple du PyPI ci-dessus.
from ahk import AHK
from ahk.window import Window
ahk = AHK()
win = ahk.active_window # Get the active window
win = ahk.win_get(title='Untitled - Notepad') # by title
win = list(ahk.windows()) # list of all windows
win = Window(ahk, ahk_id='0xabc123') # by ahk_id
win = Window.from_mouse_position(ahk) # the window under the mouse cursor
win = Window.from_pid('20366') # by process ID
Vous pouvez opérer en spécifiant la cible avec le titre ou l'identifiant de la fenêtre.
PyAutoIt
Il s'agit d'un wrapper pour AutoIt pour Python.
Vous pouvez le faire fonctionner d'une manière similaire à AutoHotKey. (* AutoHotKey lui-même est un outil à l'origine séparé d'AutoIt)
autoit
Pour être honnête, je ne sais pas si cela est lié à AutoIt, mais il semble que je fais de mon mieux pour l'implémenter moi-même.
SikuliX
Je pense que SikuliX est plutôt célèbre. Il est livré avec un IDE et vous pouvez écrire du code par Sikuli seul, mais il existe également un modèle que vous pouvez charger et utiliser comme module Python.
pynput
moses-palmer/pynput: Sends virtual input commands
C'est un outil qui permet d'automatiser le fonctionnement de la souris et le fonctionnement du clavier, et il semble qu'il ne soit pas possible d'acquérir des éléments à l'écran.
pyautogui
Le fonctionnement de la souris et le fonctionnement du clavier peuvent également être automatisés ici, mais il est possible d'utiliser plusieurs plates-formes = Windows, Mac, Linux.
Pywinauto
Comparé à d'autres modules du même type, il a une impression vivante en raison du grand nombre de commits.
L'échantillon officiel est ci-dessous.
from pywinauto import Desktop, Application
Application().start('explorer.exe "C:\\Program Files"')
# connect to another process spawned by explorer.exe
# Note: make sure the script is running as Administrator!
app = Application(backend="uia").connect(path="explorer.exe", title="Program Files")
app.ProgramFiles.set_focus()
common_files = app.ProgramFiles.ItemsView.get_item('Common Files')
common_files.right_click_input()
app.ContextMenu.Properties.invoke()
# this dialog is open in another process (Desktop object doesn't rely on any process id)
Properties = Desktop(backend='uia').Common_Files_Properties
Properties.print_control_identifiers()
Properties.Cancel.click()
Properties.wait_not('visible') # make sure the dialog is closed
Les parties telles que ProgramFiles et ItemsView sont très lisibles et se sentent bien.
WinAppDriver
microsoft/WinAppDriver: Windows Application Driver
C'est un outil créé par Microsoft qui peut faire fonctionner l'interface graphique de Windows comme Selenium.
Même si vous regardez l'exemple de code, vous pouvez voir le "Selenium-ness". C'est le fonctionnement de la calculatrice Windows.
def test_combination(self):
self.driver.find_element_by_name("Seven").click()
self.driver.find_element_by_name("Multiply by").click()
self.driver.find_element_by_name("Nine").click()
self.driver.find_element_by_name("Plus").click()
self.driver.find_element_by_name("One").click()
self.driver.find_element_by_name("Equals").click()
self.driver.find_element_by_name("Divide by").click()
self.driver.find_element_by_name("Eight").click()
self.driver.find_element_by_name("Equals").click()
self.assertEqual(self.getresults(),"8")
Cependant, le fonctionnement dans l'environnement japonais n'est pas si bon et il est difficile de le résoudre. ..
Peut-être que ce n'est pas assez bon de voir Pat ...? J'ai pensé, mais je l'ai listé juste au cas où
Recommended Posts