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

AutoHotkey中Edge/Chrome替代IE COM对象的实现方案咨询

替代方案:AutoHotkey操作Edge/Chrome浏览器

方案一:利用Chrome DevTools Protocol(CDP)

Edge和Chrome原生支持CDP,可通过WebSocket连接调试端口实现浏览器控制。

操作步骤:

  1. 启动浏览器时开启调试端口:
    • Chrome:chrome.exe --remote-debugging-port=9222
    • Edge:msedge.exe --remote-debugging-port=9222
  2. 在AutoHotkey中通过HTTP请求获取调试会话的WebSocket地址,再建立连接发送控制指令。

示例代码片段:

; 获取调试会话的基础信息
url := "http://localhost:9222/json/version"
whr := ComObjCreate("WinHttp.WinHttpRequest.5.1")
whr.Open("GET", url, false)
whr.Send()
response := whr.ResponseText

; 解析JSON获取WebSocket地址(需引入JSON.ahk这类解析库)
jsonObj := JSON.Parse(response)
wsUrl := jsonObj.webSocketDebuggerUrl

; 后续通过WebSocket客户端发送CDP指令,比如打开新标签、页面导航等

方案二:使用第三方AutoHotkey封装库

已有成熟库封装了CDP操作,能大幅简化开发流程:

  • Chrome.ahk:专注Chrome控制,支持打开标签、元素点击、表单填写等常用操作
  • Edge.ahk:针对Edge的适配版本,用法和Chrome.ahk基本一致

示例代码(Chrome.ahk):

#include Chrome.ahk

; 连接到已开启调试端口的Chrome实例
chrome := new Chrome("http://localhost:9222")
if !chrome.Connect() {
    MsgBox, 无法连接到Chrome
    ExitApp
}

; 新建标签并导航到目标页面
tab := chrome.NewTab()
tab.Call("Page.navigate", {"url": "https://www.example.com"})
tab.WaitForLoad()

; 操作页面元素,比如填写输入框
tab.Call("Runtime.evaluate", {"expression": "document.getElementById('username').value='testuser'"})

方案三:基于Selenium的AutoHotkey绑定

通过Selenium的AutoHotkey封装,借助WebDriver实现浏览器控制,适合复杂自动化场景。

示例代码:

#include Selenium.ahk

driver := ChromeDriver()
driver.get("https://www.example.com")

; 定位元素并执行输入操作
usernameInput := driver.findElement(By.id("username"))
usernameInput.sendKeys("testuser")

注意事项:

  • 使用CDP或第三方库时,必须确保浏览器以调试模式启动(带--remote-debugging-port参数)
  • 第三方库需下载对应AHK文件并引入到脚本中
  • Selenium方案需搭配对应浏览器的WebDriver(ChromeDriver/EdgeDriver),并配置好环境变量

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 03:35:18