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

如何使用Robot Framework打开并自动化VMware Horizon

可行解决方案

方案1:调整Chrome启动参数跳过弹窗(优先推荐)

该弹窗是Chrome的外部协议启动确认提示,无需操作桌面元素,直接在初始化WebDriver时添加配置即可自动跳过确认,直接启动VMware Horizon:

${chrome_options}=    Evaluate    sys.modules['selenium.webdriver'].ChromeOptions()    sys, selenium.webdriver
# 禁用vmware-horizon协议的启动确认弹窗
${prefs}    Create Dictionary    protocol_handler.excluded_schemes.vmware-horizon=${False}    protocol_handler.allowed_origin_protocol_pairs.*.vmware-horizon=${True}
Call Method    ${chrome_options}    add_experimental_option    prefs    ${prefs}
Create WebDriver    Chrome    executable_path=${driver_path_location}    options=${chrome_options}

配置完成后点击云环境触发协议调用时,Chrome会直接拉起本地VMware Horizon客户端,不会再弹出确认窗。

方案2:精准定位Chrome协议弹窗操作

如果无法调整浏览器配置,用RPA.Windows库的控件定位能力替代坐标点击,避免点击失效:

  • 先通过Windows系统自带的Inspect工具(Windows SDK内置,无需额外安装)获取弹窗的标题、按钮的自动化ID/名称属性
  • 对应Robot Framework代码示例:
# 定位并激活Chrome的协议确认弹窗,弹窗标题一般为「打开 VMware Horizon?」
Control Window    title=打开 VMware Horizon?
# 直接点击按钮控件,无需依赖坐标
Click Control    name:Open VMware Horizon

该方式直接调用Windows API操作控件,比模拟鼠标坐标点击稳定性高很多,不会因为窗口位置变化失效。

方案3:直接抓取协议链接拉起客户端(完全绕开弹窗)

触发弹窗的本质是页面调用了vmware-horizon://开头的专属协议链接,你可以直接抓取该链接,调用本地客户端启动,完全不需要和浏览器弹窗交互:

  1. 点击云环境按钮前开启Selenium的网络请求监听,或者直接获取按钮元素的href属性拿到完整的vmware协议链接
  2. 用Robot Framework自带的OperatingSystem库直接调用本地VMware Horizon客户端打开链接:
# 假设你已经拿到协议链接存入${horizon_url}变量
Run    "C:\\Program Files\\VMware\\VMware Horizon\\Client\\vmware-view.exe" ${horizon_url}

该方案完全绕开浏览器弹窗逻辑,稳定性最高,也不需要依赖任何桌面UI操作库的能力。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 16:48:02