使用 Pywinauto 访问 RDP 时如何处理证书错误和连接终止错误

问题描述 投票:0回答:1

我正在尝试使用 Pywinauto 打开 RDP 会话。我可以运行 RPA,直到输入密码并单击“确定”登录。但是,在此 RDP 会话中,登录后,对话框显示证书错误,我必须单击“是”才能继续。单击“是”按钮后,RDP 会话将打开,或者有时会显示“连接终止”。如果收到此错误,我必须单击“确定”按钮并重新启动才能成功打开它。

我正在使用 UIA 验证来检查元素。这是证书错误的屏幕截图。 enter image description here

下面是远程连接终止的截图。

enter image description here

参见下面的方法;

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

我尝试了不同的方法,但仍然无法检测到按钮。它只会打印“对话框未找到或不可见。”

python rdp pywinauto
1个回答
0
投票

我不确定您为什么需要 RDP 窗口自动化。因为无论如何您都无法在 RDP 会话中看到 UI 元素(按照设计)。如果您需要远程运行脚本,则需要将其复制到远程计算机并在那里运行。您需要遵循以下食谱之一:https://pywinauto.readthedocs.io/en/latest/remote_execution.html

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.