我正在尝试使用 Pywinauto 打开 RDP 会话。我可以运行 RPA,直到输入密码并单击“确定”登录。但是,在此 RDP 会话中,登录后,对话框显示证书错误,我必须单击“是”才能继续。单击“是”按钮后,RDP 会话将打开,或者有时会显示“连接终止”。如果收到此错误,我必须单击“确定”按钮并重新启动才能成功打开它。
我正在使用 UIA 验证来检查元素。这是证书错误的屏幕截图。
下面是远程连接终止的截图。
参见下面的方法;
def handle_dialog():
try:
dialogs = Desktop(backend='uia').windows(title="Remote Desktop Connection", visible_only=False)
for dialog in dialogs:
conn_termination_dialog = None
cert_dialog = None
button_controls = dialog.children(control_type="Button")
for button in button_controls:
if button.element_info.name == "OK":
conn_termination_dialog = button
elif button.element_info.name == "Yes":
cert_dialog = button
if cert_dialog and cert_dialog.is_visible():
cert_dialog.click_input()
return True
elif conn_termination_dialog and conn_termination_dialog.is_visible():
conn_termination_dialog.click_input()
return True
print("Dialog not found or not visible.")
except Exception as e:
print(f"Error handling dialog: {str(e)}")
return False
我尝试了不同的方法,但仍然无法检测到按钮。它只会打印“对话框未找到或不可见。”
我不确定您为什么需要 RDP 窗口自动化。因为无论如何您都无法在 RDP 会话中看到 UI 元素(按照设计)。如果您需要远程运行脚本,则需要将其复制到远程计算机并在那里运行。您需要遵循以下食谱之一:https://pywinauto.readthedocs.io/en/latest/remote_execution.html