python - 如何使用 PyWinAuto 单击对话框中的按钮

标签 python pywinauto

我有一个批处理文件,我执行它来打开一个程序。然后出现一个对话框,我在其中输入用户名和密码凭据

我打印控件标识符并列出;

SunAwtDialog - 'Login'    (L528, T242, R853, B501)
['SunAwtDialog', 'LoginSunAwtDialog', 'Login']
child_window(title="Login", class_name="SunAwtDialog")

所以读完这个post .我的理解是像这样使用窗口+按钮和点击方法;

dlp.SunAwtDialog['Login'].click()

但这会一直抛出 ElementNotFoundError

ElementNotFoundError: {'best_match': 'SunAwtDialog', 'top_level_only': False, 'parent': <win32_element_info.HwndElementInfo - 'Login', SunAwtDialog, 2164976>, 'backend': 'win32'}

下面是完整的代码片段;

from pywinauto import application
import time
app = application.Application()
app.start(r"C:\\WINDOWS\system32\cmd.exe", wait_for_idle=False)
dlg = app.top_window()
dlg.type_keys('D:{ENTER}')
dlg.type_keys('cd{SPACE}Software\\client{ENTER}')
dlg.type_keys('run_client.bat{ENTER}')
time.sleep(10)
new_app = application.Application().connect(title="iManager")
dlp = new_app.top_window()
#type username + password
dlp.type_keys('user')
dlp.type_keys('{TAB}')
dlp.type_keys('pass')
#print control identifiers
dlp.print_control_identifiers()
#click login[![enter image description here][1]][1]
dlp.SunAwtDialog['Login'].click()

您可以在图片下方看到我希望能够单击的“登录”按钮。 “服务器”选项旁边还有另一个按钮,但它不在我的控件标识符中

Dialog box

最佳答案

我为此使用的解决方案是使用 send_keys。试试这个:

from pywinauto.keyboard import send_keys
send_keys("{VK_MENU down}" "l" "{VK_MENU up}")

关于python - 如何使用 PyWinAuto 单击对话框中的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54670224/

相关文章:

Python二维列表: exporting as delimited text file

python - 用于 python 的斯坦福 nlp

python - 在 python 中自动化 IE、MS-Office 设置验证的最佳方法

python - PIP安装包但有些找不到

python - 使用 python 获取屏幕上文本的 x , y 坐标

python - plotly : Heatmap color legend i subplot

Python Numpy : np. int32 "slower"比 np.float64

python - SQLAlchemy:选择查询中对象的哪些列

python - 无法在 Windows 10 上导入 pywinauto

winforms - 如何在 python 脚本中将 SendKeys 发送到 Windows 窗体?