【问题标题】:How do I fill text-boxes in a gui application through command line?如何通过命令行填充GUI应用程序中的文本框?
【发布时间】:2011-07-22 01:18:28
【问题描述】:

我正在用 python 设计一个 NLP(自然语言处理)应用程序,我想使用以下 UNL(通用网络语言)EnConverter,它是一个可执行的 gui - 第 3 方 - 应用程序,仅适用于 Windows(我没有它的源代码):


所以,我想知道的是如何编写一个调用此 EnConverter 并按下“设置”按钮的控制台应用程序,然后设法填充下图中的文本框:

当我单击“设置”按钮时,会显示上一个窗口...我希望我的应用程序填充这些文本框,然后按“确定” ... 当按下“OK”按钮时,应用程序返回到第一个窗口... 应用程序(我的应用程序)要做的最后一件事是单击第一个窗口中的“EnConvert”按钮...请看第一张图片。

我知道这是可能的,因为我的教授已经在 Perl 中完成了这项工作......但他拒绝告诉我怎么做!!!我研究了互联网,但一无所获!

【问题讨论】:

    标签: python windows perl console ui-automation


    【解决方案1】:

    您可以使用Win32::GuiTest。它可以检测小部件、单击按钮、将文本写入 GUI 等。

    【讨论】:

    • 那是 Perl 的...我想要一个 Python 库。无论如何,谢谢伙计。
    【解决方案2】:

    您可以使用PyWinAuto。它可以检测小部件、单击按钮、将文本写入 GUI 等。

    【讨论】:

    • 谢谢大佬,但是我不能从那里下载!!还有其他有用的链接吗??
    • 没关系,我已经安装好了...非常感谢您的帮助 :)
    • 我已经安装了 PyWinAuto 并制作了一个小程序来填充文本框...但是当我填充文本框时,单击“确定”然后单击“EnConvert”(在第一个窗口上)发生错误,说它无法读取“字典文件”,这是第一个文本框(第二个窗口)的值。我尝试手动填充文本框,但原因没有出现......所以问题不是来自字典文件...你能帮忙吗??
    • 你可能填错了。尝试绝对路径。还要添加一些延迟以查看真正填写的内容以及是否正确。
    • 顺便说一句:你有 0.4.0 版吗?因为我记得它不需要 SendKeys。
    【解决方案3】:

    Windows Sendkey 包看起来应该是理想的这种东西。

    从页面:

    在本例中,SendKeys 用于键入“Hello World!”在记事本中。

    import SendKeys
    SendKeys.SendKeys("""
        {LWIN}
        {PAUSE .25}
        r
        Notepad.exe{ENTER}
        {PAUSE 1}
        Hello{SPACE}World!
        {PAUSE 1}
        %{F4}
        n
    """)
    

    【讨论】:

    • 我发现除非我已经安装了 SendKeys 包,否则我无法安装 PyWinAuto 包。谢谢大佬。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-26
    • 1970-01-01
    • 2020-09-02
    • 2011-11-04
    • 2013-09-22
    • 2012-02-04
    • 2019-10-15
    相关资源
    最近更新 更多