我试图使用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位版本的python?我尝试使用32位版本的python运行它,但是它说即使我运行pip install pywinauto,也无法识别“ 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()
Run Code Online (Sandbox Code Playgroud) 我正在为我的桌面应用程序使用 Python 编写自动化脚本。我正在将 TAB 键/任意键发送到我的 Windows 窗体。但我无法在 Python 脚本中找到该 Windows 窗体的句柄。
这是示例代码片段:
__author__ = 'juhis'
import SendKeys
import sys
import os
from Tkinter import *
import ctypes
import win32gui
import pywinauto
pwapp = pywinauto.application.Application()
whandle = pywinauto.findwindows.find_windows(title_re='Form1',class_name='WindowsForms10.Window.8.app.0.2bf8098_r13_ad1')[0]
window1 = pwapp.window_(handle=whandle)
window1.SetFocus()
SendKeys.SendKeys("""{PAUSE 2}""")
SendKeys.SendKeys("""{TAB 2}{PAUSE 2}{ENTER}""")
Run Code Online (Sandbox Code Playgroud)
请帮我解决这个问题。
-谢谢
我是pywinauto的新手,刚开始学习.我在我的本地32位Windows 7操作系统中安装了pywinauto和pip.所以,我有这个示例代码在chrome浏览器中打开一个URL.
from pywinauto import application
app=application.Application()
app.start(r'C:\Program Files\Google\Chrome\Application\chrome.exe')
app.window_(title='New Tab')
app.window_().TypeKeys('{F6}')
app.window_().TypeKeys('{ESC}')
app.window_().TypeKeys('www.facebook.com')
Run Code Online (Sandbox Code Playgroud)
在运行它时,它抛出错误:
Traceback (most recent call last):
File "pywinauto_nil.py", line 6, in <module>
app.window_().TypeKeys('{F6}')
File "C:\Python27\lib\site-packages\pywinauto\application.py", line 252, in
__getattr__
ctrls = _resolve_control(self.criteria)
File "C:\Python27\lib\site-packages\pywinauto\application.py", line 758, in _resolve_control
raise e.original_exception
pywinauto.findwindows.WindowNotFoundError
Run Code Online (Sandbox Code Playgroud)
我用谷歌搜索,但找不到任何有用的解决方案.
我哪里错了?
我正在尝试编写一个脚本来自动设置新的开发机器。我一直在使用 PyWinAuto 尝试自动安装各种程序,这些程序主要使用 WinForm (或类似的)GUI 窗口。
PyWinAuto 正确打开应用程序,但不返回任何窗口。我已经安装了 SWAPY,它向我显示了我期望看到的控件,但它们在代码中不起作用。我尝试分别将 PyWinAuto 0.6.3 和 0.5.4 与 Python 2.7.13 和 2.7.12 一起使用(我在 Windows 7 32 位机器上),但没有任何效果。
以下是我收到的错误示例:
import pywinauto
from pywinauto.application import Application
app = Application()
app.Start("C:\setup.exe")
appSetup = app.Setup
appSetup.Wait('ready')
...
...
Error: pywinauto.timings.TimeoutError: timed out
Run Code Online (Sandbox Code Playgroud)
或者
app = Application()
app.Start("C:\setup.exe")
appSetup = app.Setup
appSetup.ClickInput()
...
...
Error: pywinauto.findbestmatch.MatchError: Could not find 'Setup' in '[]'
Run Code Online (Sandbox Code Playgroud)
以下是我遇到错误的一个安装示例: Boost Install Window with SWAPY 说明
非常感谢您的帮助。谢谢你!
当尝试使用 Pywinauto 0.6.5 将字符串输入'customer asked for 30% discount'表单时type_keys(),它发送的输出'customer asked for 30 discount"省略了'%'。
尝试转义字符:
control.type_keys('customer asked for 30%% discount',with_spaces=True)control.type_keys('customer asked for 30\% discount',with_spaces=True)但它仍然省略了'%'
当在控制台字符串输出中正确打印数据时。所以这不是Python 3.7的问题。
我是 pywinauto 的新手,我不知道如何使用控件标识符。


我该如何设置No. of loops:为99999?
我正在尝试使用 pywinauto 在 Python 中制作语音输入程序。首先,我使用 SpeechRecognition 模块识别语音,并将识别的语音转换为字符串,然后使用该type_keys()方法在记事本中键入字符串。
这是代码:
from pywinauto import application
import time
import speech_recognition as sr
app = application.Application()
app.start("Notepad.exe")
def type_keys_in_notepad():
r = sr.Recognizer()
with sr.Microphone() as source:
print("Listening...")
r.pause_threshold = 1
r.adjust_for_ambient_noise(source)
audio = r.listen(source)
try:
print("Recognizing...")
content = r.recognize_google(audio, language="en-in")
print(content)
content_str = str(content)
app.Notepad.edit.type_keys(content_str)
except Exception as e:
print(e)
type_keys_in_notepad()
Run Code Online (Sandbox Code Playgroud) 我使用swapy(使用pywinauto python包的桌面自动化工具)来自动化桌面UI活动,但是swapy不能识别基于swing的java应用程序的属性,但它可以识别其他应用程序的属性,如记事本windows媒体播放器等. .
任何人都可以请这个问题的原因
我可以使用swing explorer来实现这个基于swing的应用程序,我没有代码,只有应用程序
如果我无法使用它,请给我一个方法/解决方案来访问基于swing的java应用程序的属性.
提前致谢..
我正在尝试使用 pywinauto 控制桌面上的鼠标事件。具体来说,我希望通过向其窗口发送鼠标单击来激活不同的应用程序,并且理想情况下能够移动具有众所周知的标题栏坐标的窗口。
我尝试过对“explorer”和“dwm”进行 app.connect_() 调用,但除了具有“Progman”类的 DialogWrapper 之外,我没有任何乐趣。使用 SWAPY 进行搜索也得到了同样糟糕的结果。
我不是 Windows 程序员,所以我希望我在这里遗漏了一些相当明显的东西。任何提示都会受到欢迎。
谢谢
我想更改外部应用程序的编辑控件的文本.该应用程序是用Delphi编写的.它有几种形式.我开始用Python库pywinauto+ sendkeys测试第一种形式TLoginForm.它完美地运作.这是伪代码:
helper = pywinauto.application.Application()
hwnd = pywinauto.findwindows.find_windows(class_name='TLoginForm')[0]
window = helper.window_(handle=hwnd)
ctrl = window[2] # the second control is the edit control I want to access
ctrl.ClickInput() # focus the control
ctrl.SetEditText('Hello world') # text can be changed expectedly
Run Code Online (Sandbox Code Playgroud)
作为第二步,我想为自动化工具制作UI.但由于缺乏Python UI知识并考虑到在Python中分发二进制文件的复杂性,我想做Delphi.但奇怪的是我无法使用Windows apis在Delphi中读/写编辑控件.以下是一些尝试:
SetForegroundWindow(EditControlHandle); // Works, the application will be brought to front, the edit control will be focused
// Attempt 1: Nothing happens
SetFocus(AnotherEditControlHandle);
// Attempt 2: Nothing happens
SetWindowText(EditControlHandle, 'Hello world');
// Attempt 3: …Run Code Online (Sandbox Code Playgroud) 是否有任何函数可用于从字段中选择所有数据(字符串)?
例如,当您要删除字段中的所有数据,然后手动选择它并按Delete键。
我目前正在使用DoubleClick()和Backspace键,但是如果字符串包含空格(例如“ This is a string”),它将仅选择第一个单词。
我正在从事一个自动化项目,该项目要求我搜索 acrobat 进程,然后将其置于前台。我使用的是 Windows Server 2012 R2 Standard 和 Python。我在进程列表中搜索该特定 PDF 文件,然后尝试将该窗口置于前台。
当服务器打开并处于活动状态时,我的代码运行良好。一旦它被最小化或锁定,它就不起作用。具体来说,SetForegroundWindow() 行不起作用并抛出错误“(0, 'SetForegroundWindow', 'No error message is available')”。
接下来,我浏览了此处列出的许多示例,有人建议在该行之前使用“Alt”选项卡。试过了,没用。然后我根据另一个用户使用 ShowWindow() 但又出现了同样的错误。现在,我完全被困住了。
我已经查看了许多与该问题相关的线程,例如: 1. SetForegroundWindow 不适用于最小化进程 2.最小化时前移窗口 3.最小化时前移窗口
我试过 MainWindowHandle 可以修复错误,但我无法在 python 中实现它。
另外,我安装了 pywinauto 并使用了 pywinauto 的 findwindows 和 SetForegroundWindow 功能。当服务器处于活动状态时它运行良好,但是一旦我们最小化或锁定服务器,它就不起作用并给出相同的错误“(0, 'SetForegroundWindow', 'No error message is available')”。
现在,我完全没有选择。任何想法/建议?
这是片段:
import win32gui,win32con
import win32com.client
import time
time.sleep(3)
def windowEnumerationHandler(hwnd, top_windows):
if win32gui.IsWindowVisible(hwnd) and win32gui.GetWindowText(hwnd)!='':
top_windows.append((hwnd, win32gui.GetWindowText(hwnd)))
results = []
top_windows = []
file_name_of_pdf = "ARW_AR_2016.pdf"
win32gui.EnumWindows(windowEnumerationHandler, …Run Code Online (Sandbox Code Playgroud)