pywinauto typekeys无法正常工作

时间:2018-02-16 21:38:26

标签: python automation pywinauto

我正在使用pywinauto将文件上传到网络服务器。我正在使用Selenium导航到一个页面并激活Windows资源管理器上传对话框,然后调用pywinauto来访问打开的窗口。我已经能够做到这一点,但我只能在文件名字段中输入密钥。我正在尝试键入目录字段,以便我可以访问特定的文件夹,但TypeKeys方法根本不做任何事情。只有SendKeys似乎可以工作,但它不会键入空格。这是我的代码

import pywinauto.keyboard
import pywinauto
import pywinauto.mouse

def inputfileinuploader(filename):
    pwa_app = pywinauto.Application().connect(path="C:\Windows/explorer.exe")
    w_handle = pywinauto.findwindows.find_windows(title=u'Open', class_name='#32770')[0]
    window = pwa_app.window(handle=w_handle)
    ctrl = window['Breadcrumb Parent']
    ctrl.TypeKeys("folder")
    pywinauto.keyboard.SendKeys(u"You Can Make A Difference 1.mp3")

1 个答案:

答案 0 :(得分:1)

方法type_keys在输入之前设置焦点。所以问题可能在于错误的控制集中。如果您确保光标位于正确的位置(例如,ctrl.click_input()ctrl.draw_outline()),但如果您怀疑type_keys错误地设置了焦点,则可能的解决方法是

ctrl.type_keys("folder", with_spaces=True, set_foreground=False)

相同的参数适用于SendKeysset_foreground除外)。