我正在尝试使用pywinauto自动化TomCat,以便在每次更新类文件时启动和停止。但是,当我尝试运行它时,它会给我以下警告:
UserWarning: 32-bit application should be automated using 32-bit Python (you use 64-bit Python)
我很确定我拥有所需程序的64位版本(甚至重新安装以确保)。有没有办法跳过这个警告,以便程序可以执行?或者这不可能吗? (Tomcat甚至安装在程序文件而不是程序文件(x86)中。)如果我必须使用32位版本的python来执行此操作,如何为32位和64位安装pywinauto -bit版本的python?我尝试使用32位版本的python运行它,但它说“pywinauto”模块无法识别,即使我运行了pip install pywinauto。
编辑:尽管有警告信息,该计划“仍然有效”。它告诉我,我应该使用32位python。即使tomcat的代码不起作用(我不知道为什么,甚至使用SWAPY来确保代码是正确的,但它仍然无法工作)。 这是一些未按预期执行的代码(即没有发生任何事情)
def tomCatAuto():
app = Application().Connect(title=u'Apache Tomcat 8.0 Tomcat8 Properties', class_name='#32770')
window = app.Dialog
button = window.OK
button.Click()
答案 0 :(得分:3)
要确保程序确实是64位,您可以打开任务管理器并查看进程名称中的“* 32”后缀。如果显示,该过程实际上是32位(可能是TomCat安装程序中的错误?)。
要在系统上为非默认Python安装pywinauto,您需要指定pip.exe的完整路径,如下所示:
C:\Python27_32\scripts\pip.exe install pywinauto
编辑:
我看到Tomcat7w.exe
进程真的是 32位。所以你需要运行32位Python来自动化它。还要确保Python + pywinauto以管理员的身份运行。
P.S。 64位Python + pywinauto可能适用于32位进程(这就是为什么只有警告,而不是错误)。有时,当进程的位数不正确时,用户会遇到 TreeView 控件的问题。