Es gibt berühmte Orte wie Selenium im Web, aber ich habe den Eindruck, dass es kein De-facto-Tool zum Bedienen der Windows-GUI gibt.
In Wirklichkeit gibt es viele Möglichkeiten, deshalb werde ich sie hier zusammenfassen.
ahk
AutoHotkey Wrapper für Python.
Unten sehen Sie ein Beispiel von PyPI.
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
Sie können das Ziel anhand des Fenstertitels oder der ID angeben.
PyAutoIt
Dies ist ein Wrapper für AutoIt für Python.
Sie können es ähnlich wie AutoHotKey bedienen. (* AutoHotKey selbst ist ein Tool, das ursprünglich von AutoIt getrennt war.)
autoit
Um ehrlich zu sein, bin ich mir nicht sicher, ob es mit AutoIt zusammenhängt, aber es scheint, dass ich mein Bestes tue, um es selbst zu implementieren.
SikuliX
Ich denke, SikuliX ist ziemlich berühmt. Es wird mit einer IDE geliefert, mit der Sie Code nur auf Sikuli schreiben können. Es gibt jedoch auch Muster, die Sie laden und als Python-Modul verwenden können.
pynput
moses-palmer/pynput: Sends virtual input commands
Es ist ein Tool, das die Maus- und Tastaturbedienung automatisieren kann, und es scheint, dass es nicht möglich ist, Elemente auf dem Bildschirm zu erfassen.
pyautogui
Maus- und Tastaturbedienung können auch hier automatisiert werden, aber Multi-Plattform = Windows, Mac, Linux können bedient werden.
Pywinauto
Im Vergleich zu anderen Modulen des gleichen Typs wirkt es aufgrund der großen Anzahl von Commits lebhaft.
Das offizielle Beispiel finden Sie weiter unten.
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
Die Teile wie ProgramFiles und ItemsView sind gut lesbar und fühlen sich gut an.
WinAppDriver
microsoft/WinAppDriver: Windows Application Driver
Es ist ein Tool von Microsoft, das die Windows-Benutzeroberfläche wie Selenium bedienen kann.
Selbst wenn Sie sich den Beispielcode ansehen, können Sie die "Selenität" sehen. Es ist die Bedienung des Windows-Rechners.
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")
Die Operation in der japanischen Umgebung ist jedoch nicht so gut und es ist schwierig, sie zu lösen. ..
Vielleicht ist es nicht gut genug, Pat zu sehen ...? Ich dachte, aber ich habe es nur für den Fall aufgelistet
Recommended Posts