Ich habe ein Python-Skript, das Selen verwendet, um Webseiten zu automatisieren, wobei der Fokus weg vom Terminal gezogen wird, wo Benutzereingaben benötigt werden.Das Terminal im Fokus behalten
Gibt es sowieso in Python, den Fokus programmgesteuert auf das Terminal zu wechseln?
Ich werde mein Programm in der Windows-Eingabeaufforderung auf Windows 7 ausführen, wenn es darauf ankommt, aber eine plattformübergreifende Antwort wäre am nützlichsten.
Versuche
an den Blick pywin32
Paket-Anbindung für die Win32-API die folgenden habe ich:
import win32console
import win32gui
from selenium import webdriver as wd
d = wd.Firefox()
win32gui.SetFocus(win32console.GetConsoleWindow())
win32gui.FlashWindow(win32console.GetConsoleWindow(), False)
input('Should have focus: ')
SetFocus
verursacht den Fehler pywintypes.error: (5, 'SetFocus', 'Access is denied.')
aufgrund Microsoft die Fähigkeit zu entfernen nehmen Fokus von einem anderen Anwendung.
FlashWindow
scheint nichts zu tun.
Ist kein Javascript prompt eine Option für Benutzereingaben? – Saifur
@Saifur Nicht wirklich, mein Skript ist in Python geschrieben (also ist es schwer, das in einer Browser-Entwicklerkonsole zu bekommen) und die Automatisierung beinhaltet das Schließen und Öffnen mehrerer Browser mit ihren eigenen Entwicklerkonsolen. Idealerweise suche ich nach einem einzelnen Python-Paket oder -Skript, das ich von Python ausführen kann, was den Fokus zurück zum Terminal bringt. – thodic
Warum verwenden Sie keine VM, um all Ihre mit Selen verbundenen Aktivitäten zu hosten? Vielleicht selen grid oder ssh verwenden, um Selen-Skripte zu starten? –