如何通过命令行在GUI应用程序中填写文本框?

4
我正在使用Python设计一个自然语言处理(NLP)应用程序,并想使用以下UNL(通用网络语言)EnConverter,它是一个可执行的GUI-第三方应用程序,仅适用于Windows(我没有它的源代码):
所以,我的问题是如何编写一个调用此EnConverter并按下“设置”按钮的控制台应用程序,然后成功填写以下图像中的文本框:
当我点击“设置”按钮时,上一个窗口会显示出来...我希望我的应用程序能够填写这些文本框,然后按下“确定”... 当按下“确定”按钮时,应用程序会返回到第一个窗口... 应用程序(我的应用程序)最后要做的事情就是在第一个窗口中点击“EnConvert”按钮...请参见第一张图片。
我知道这是可能的,因为我的教授已经在Perl中完成了这项工作...但他拒绝告诉我怎么做!我已经在互联网上进行了研究,但什么也没有找到!
3个回答

4
你可以使用Win32::GuiTest。它可以检测小部件、点击按钮、在GUI中写入文本等。

那是针对 Perl 的... 我想要一个 Python 的库。不管怎样,谢谢伙计。 - Ahmad Alhour

3
你可以使用PyWinAuto。它可以检测小部件,点击按钮,在GUI中编写文本等。

谢谢,但我无法从那里下载!有其他有用的链接吗? - Ahmad Alhour
没事,我已经安装好了...非常感谢你的帮助 :) - Ahmad Alhour
我已经安装了PyWinAuto并编写了一个小程序来填充文本框...但是当我填充文本框,点击“OK”,然后点击“EnConvert”(在第一个窗口上)时,出现了一个错误,说它无法读取“字典文件”,这是第一个文本框(第二个窗口)的值。 我尝试手动填充文本框,但原因没有显示出来...所以问题不是来自字典文件...你能帮忙吗? - Ahmad Alhour
你可能填错了一些东西。尝试使用绝对路径。同时添加一些延迟,以查看实际填写的内容是否正确。 - Fenikso
顺便问一下,你有0.4.0版吗?因为我记得它不需要使用SendKeys。 - Fenikso
我会尝试那个技巧...是的,我有0.4.0版本...安装时它只是请求了SendKeys...无论如何,我会尝试并回复你... - Ahmad Alhour

1

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包。谢谢,伙计。 - Ahmad Alhour

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接