С Pywinauto, как мне узнать, как называется запущенное приложение?
Я пытаюсь поиграть с Pywinauto, и у меня есть базовая программа, которая просто запускает программу и нажимает на нее, выглядит так:
from pywinauto import application
app = application.Application()
app.Start_("//PathToGChrome/Google Chrome.exe")
# Google Chrome Starts
app.Google_Chrome.ClickInput(coords=(0,0))
# Returns error:
Could not find 'Google_Chrome` in `dict_keys([])`
Но если бы мне понравилось
app.Start_('Notepad.exe')
# Notepad Starts
app.Notepad.ClickInput(coords=(0,0))
# Foregrounds notepad and clicks in the top left
Почему Google Chrome не может быть найден? Это потому, что в названии есть пробел? Как я знаю, как правильно назвать Google Chrome?
1 ответ
Похоже, что внутренний поиск pywinauto для заголовка окна завершается неудачно, потому что идентификатор процесса окна Chrome отличается от PID модуля запуска Chrome. Самый простой способ для вас - просто использовать вспомогательное приложение Swapy ( https://code.google.com/p/swapy/). Оно немного устарело, но все еще работает и помогает вам генерировать работающий код. По крайней мере, для начала. Запустите Swapy после запуска Chrome и найдите название приложения в списке. Щелкните правой кнопкой мыши на элементе и выберите действие для выполнения. Это пример кода:
import pywinauto
pwa_app = pywinauto.application.Application()
w_handle = pywinauto.findwindows.find_windows(title=u'New Tab - Google Chrome', class_name='Chrome_WidgetWin_1')[0]
window = pwa_app.window_(handle=w_handle)
window.ClickInput()