【问题标题】:How to type into a text field in Windows Explorer?如何在 Windows 资源管理器中输入文本字段?
【发布时间】:2019-02-04 18:03:12
【问题描述】:

我正在尝试将文件上传到网站,当我单击上传按钮(使用 WebBot 模块)时,它会打开 Windows 资源管理器。我可以将文件名输出到文件名字段吗?我有文件的完整路径,我只需要将实际文本放入文件名框中。

【问题讨论】:

    标签: python python-3.x windows-explorer webbot


    【解决方案1】:

    我会在这里考虑两种方法:

    1. 使用专门用于与 Windows GUI 交互的 python 库。我曾经对Pywinauto 有过很好的体验,乍一看似乎仍然很实用。当您希望资源管理器窗口打开时,将其挂钩。代码在概念上可能看起来像这样 - 进行一些测试运行并从上传对话框打印所有可用的句柄(只是在这里猜测作为提示,请参阅 Pywindocs):

      app = Application().connect(title_re=".*Upload file", path=r"c:\windows\explorer.exe") dlg = app.window(title_re=".*Upload file", path=r"c:\windows\explorer.exe") app.dlg.print_control_identifiers()

    2. 检查您是否可以简单地使用相应的数据执行 POST 或类似操作。这是一个非常模糊的选择,因为您没有提供关于上传什么以及网站的底层后端/概念是什么的信息,但在最简单的情况下,这甚至可能是一个更优雅的选择。快速搜索找到了这个简短的示例:https://stackoverflow.com/a/43942648/10192615

    【讨论】:

    • 对不起,在这里提问很新。我们正在将 pdf 文件上传到客户的首选网站。我正在考虑使用 Pywinauto,但我不记得模块的名称来挽救我的生命。我们最终使用的是 pynput。它让我们可以简单地说:keyboard.type(filename)
    • 为了完整起见,我更新了答案以包含一个 SO 链接,该链接指向如何通过 Python 中的 POST 请求执行此操作的示例。听起来如果这在这种情况下是可能的并且在这种情况下更简单/更少开销。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-22
    • 1970-01-01
    • 1970-01-01
    • 2022-07-27
    • 1970-01-01
    • 2010-12-30
    • 2015-09-10
    相关资源
    最近更新 更多