pywinauto type_keys () не отправит все ключи - PullRequest
0 голосов
/ 20 марта 2019

Я занимаюсь некоторой автоматизацией Windows, и мне нужно импортировать файл в инструмент, используя диалог «Открыть».У меня есть этот код

 w_open_handle = pywinauto.findwindows.find_windows(title=u'Open', class_name='#32770')[0]
 w_open = app.window_(handle=w_open_handle)

 # Enter filename in edit box
 w_open['File &name'].type_keys("export.txt")

Когда я запускаю его, я замечаю, что только ключи "rt.txt" отправляются в поле редактирования Имя файла наокно.Я пробовал другие имена вместо «export.txt», но в каждом случае первые несколько ключей не отправляются.Я подумал, что небольшая задержка между открытием диалога и отправкой ключей поможет, но безрезультатно.

Может кто-нибудь сказать мне, что здесь происходит?

Python 3.4.5 (мне нужна эта версия из-за других зависимостей пакета)

Windows 10

Ответы [ 2 ]

2 голосов
/ 24 марта 2019

Возможные эффекты type_keys():

  • Он вызывает .set_focus() внутри.
  • Может быть найден неправильный элемент управления (его легко проверить с помощью метода .draw_outline()).

Более надежный метод, который устанавливает весь текст - .set_text("..."), который доступен только для определенных типов элементов управления.

0 голосов
/ 20 марта 2019

попробуйте

from pywinauto import keyboard
keyboard.send_keys("export.txt")
...