我正在使用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")
答案 0 :(得分:1)
方法type_keys
在输入之前设置焦点。所以问题可能在于错误的控制集中。如果您确保光标位于正确的位置(例如,ctrl.click_input()
或ctrl.draw_outline()
),但如果您怀疑type_keys
错误地设置了焦点,则可能的解决方法是
ctrl.type_keys("folder", with_spaces=True, set_foreground=False)
相同的参数适用于SendKeys
(set_foreground
除外)。