You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

断开Windows 2019远程桌面后Chrome/Selenium报错的原因及解决办法

Windows Server 2019断开远程桌面后Selenium报错的解决方法

1. 启用Chrome无头模式

断开远程桌面后系统会挂起会话桌面,Chrome失去渲染上下文就会触发超时、元素点击失败这类问题。启用无头模式可以让Chrome脱离桌面环境后台运行,是最直接的解决方式。

针对你的Chrome 103版本,代码配置如下:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument("--headless")  # 103版本用旧无头参数,109+可改用--headless=new
chrome_options.add_argument("--disable-gpu")
chrome_options.add_argument("--window-size=1920,1080")  # 固定窗口尺寸,避免元素定位偏移

driver = webdriver.Chrome(options=chrome_options)
# 后续业务代码...

2. 保持远程桌面会话活跃

断开远程桌面时不要直接注销,用命令行让会话后台保持:

  • 打开命令提示符,输入quser查看当前登录的会话ID(输出里的ID列数值)
  • 执行tscon <会话ID> /dest:console,比如会话ID是2就运行tscon 2 /dest:console,断开后桌面会话不会被系统挂起。

也可以通过修改注册表让服务器自动登录,永久保持会话:

  1. 打开注册表编辑器,定位到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
  2. 设置AutoAdminLogon为1,DefaultUserName填你的管理员账号,DefaultPassword填对应密码
  3. 重启服务器后会自动登录桌面,即使断开远程连接也能维持会话环境。

3. 调整Selenium等待策略

断开会话后页面渲染速度可能变慢,延长等待时间避免超时:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

# 显式等待元素可点击,超时设为30秒
wait = WebDriverWait(driver, 30)
target_element = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "your-element-selector")))
target_element.click()

# 全局设置页面加载和脚本超时
driver.set_page_load_timeout(60)
driver.set_script_timeout(60)

4. 替换远程桌面工具

用TeamViewer、VNC这类第三方工具代替系统自带的远程桌面,这类工具断开连接后不会挂起服务器的桌面会话,Chrome的渲染进程能正常运行。

内容的提问来源于stack exchange,提问作者Goldenhat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 22:36:34