服务器渲染问题
回答
收藏

服务器渲染问题
100刀币

J
JiaJin Ma
2025-10-16 11:10·浏览量:966
J
JiaJin Ma
发布于 2025-10-16 11:10966浏览

背景:在window系统下使用远程桌面连接阿里云服务器运行rpa[每日定时]
问题1:关闭远程桌面,打开影刀调度模式,在控制台或者定时运行rpa,浏览器渲染不稳定,导致元素无法获取
原因:
1.1 在 Windows Server 上,RDP(远程桌面)连接断开后,默认会结束当前的交互式桌面会话(Session 1),转到一个“非活动会话”或后台会话。
1.2 在这种后台会话中,Windows 不会继续渲染完整的 GUI(图形界面),浏览器的渲染线程可能被降级甚至暂停。
1.3 RPA 工具(影刀、UiPath 等)依赖于可见的桌面和浏览器渲染来定位元素,如果桌面会话被切换到非交互模式,元素树和渲染结果会不完整或为空。
这就是为什么在控制台或定时运行时,浏览器元素无法获取。

问题2:在 Windows 上用远程桌面(RDP)连接到阿里云服务器,长时间不操作后,远程桌面窗口会“黑屏”或显示锁屏,但实际上服务器并没有真正关机或休眠,只是显示熄屏的状态。导致元素获取失败
原因是:
2.1 当你保持 RDP 连接但长时间不操作,Windows Server 会触发锁屏或屏幕保护。
2.2锁屏状态下,虽然会话还在,但桌面被替换成登录界面,原来的 GUI 不再渲染。
2.3 RPA 工具在锁屏界面无法访问原来的浏览器窗口,因此元素获取失败。
2.4 另外,某些情况下 RDP 客户端会停止刷新画面(黑屏),这也意味着后台的渲染线程可能被挂起。

请你帮我使用向日葵远程帮我解决问题,谢谢!

尝试过的方案

尝试写了脚本解决渲染问题:脚本内容:@echo off
setlocal

:: 切换到本地控制台
for /f "skip=1 tokens=3" %%s in ('query user %USERNAME%') do (
    %windir%\System32\tscon.exe %%s /dest:console
)

:: 等待系统完成会话切换
timeout /t 5 /nobreak >nul

:: 直接设置1920x1080分辨率
powershell -Command "Add-Type -MemberDefinition '[DllImport(\"user32.dll\")] public static extern int ChangeDisplaySettings(int devMode, int flags);' -Name DisplayUtils -Namespace Win32 -PassThru | Out-Null; $null = [Win32.DisplayUtils]::ChangeDisplaySettings(0, 0); $devMode = New-Object -TypeName Win32.DisplayUtils+DEVMODE; $devMode.dmSize = [System.Runtime.InteropServices.Marshal]::SizeOf($devMode); $devMode.dmPelsWidth = 1920; $devMode.dmPelsHeight = 1080; $devMode.dmFields = 0x40000; [Win32.DisplayUtils]::ChangeDisplaySettings([ref]$devMode, 0) | Out-Null"

endlocal

收藏
全部回答1
最新
发布回答
回答