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

如何自动化通过URL启动且无EXE文件的WPF应用?

解决方案:浏览器协议唤起的WPF应用自动化

这类通过自定义URL协议唤起的WPF应用不属于Web应用,Selenium(Web自动化工具)自然不适用,以下是几个落地的自动化方案:

1. 跳过浏览器,直接唤起应用

既然应用是通过URL协议唤起(比如company-wpf-app://open?param=xxx),完全可以绕过浏览器,直接调用系统的URL协议处理机制启动应用:

  • Windows命令行:start company-wpf-app://open?param=xxx
  • Python代码:
    import webbrowser
    webbrowser.open("company-wpf-app://open?param=xxx")
    
  • C#代码:
    System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo("company-wpf-app://open?param=xxx") { UseShellExecute = true });
    

2. 用桌面自动化工具操作WPF应用

WPF属于.NET桌面应用,用专门的桌面自动化工具才能精准定位控件、模拟操作:

WinAppDriver(微软官方推荐)

这是微软针对Windows桌面应用(WPF/UWP/WinForms)推出的自动化工具,语法和Selenium类似,支持元素定位(XPath、AutomationId、控件名等):

  1. 安装WinAppDriver并启动服务(默认端口4723)
  2. 确保WPF应用启用自动化支持:给需要定位的控件设置AutomationProperties.AutomationId(比如XAML里<Button AutomationProperties.AutomationId="SubmitBtn" Content="提交"/>)
  3. 示例Python代码(依赖appium-python-client):
    from appium import webdriver
    
    desired_caps = {
        "app": "Root\\Applications\\YourWpfAppProcessName", # 替换为你的应用进程名,或者用应用的AUMID
        "platformName": "Windows"
    }
    
    driver = webdriver.Remote('http://127.0.0.1:4723', desired_caps)
    # 按AutomationId定位按钮并点击
    submit_btn = driver.find_element_by_accessibility_id("SubmitBtn")
    submit_btn.click()
    

AutoHotkey

适合简单的重复操作(比如按键、点击固定位置),不需要复杂的元素定位,快速实现自动化脚本:

; 唤起应用
Run, company-wpf-app://open?param=xxx
Sleep, 3000 ; 等待应用启动
; 模拟点击提交按钮(假设按钮在屏幕固定位置)
Click, 500, 300
; 模拟输入文本
Send, Hello World

White Framework

专门针对.NET桌面应用的自动化库,能深度解析WPF的控件树,适合复杂场景的自动化开发。

3. 浏览器唤起+桌面自动化结合(如果必须走浏览器流程)

如果业务要求必须通过浏览器打开链接唤起应用,可以用Selenium完成浏览器端操作,再切换到桌面自动化工具控制WPF应用:

  1. 用Selenium打开浏览器,访问目标URL并触发唤起操作
  2. 启动WinAppDriver服务,连接到已启动的WPF应用进程
  3. 后续操作完全用桌面自动化工具完成

内容的提问来源于stack exchange,提问作者Sangram Vasant Patil

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 03:50:29