如何在已打开的Edge浏览器中打开网站而非启动新实例?
在已打开的Edge浏览器中打开指定网站(VBA Selenium实现)
原代码用obj.Start "Edge", ""会强制启动全新的Edge实例,要实现连接已打开的Edge并打开指定网站,需通过远程调试端口实现,步骤如下:
1. 配置Edge开启远程调试
- 右键Edge浏览器快捷方式,选择「属性」
- 在「目标」输入框末尾添加参数(注意前方加空格):
--remote-debugging-port=9222 - 点击「确定」,通过这个修改后的快捷方式启动Edge(只有这样启动的Edge才会开启调试端口,允许外部连接)
2. 修改VBA代码
替换原代码为以下内容,核心用AttachTo方法连接已运行的Edge实例,而非创建新实例:
Sub Resolve() Dim obj As New WebDriver ' 连接已开启远程调试的Edge实例,端口对应之前设置的9222 obj.AttachTo "Edge", "http://localhost:9222" ' 在当前标签页打开指定网站 obj.Get "https://www.google.com" ' 可选:如果需要在新标签页打开网站,注释掉上面的Get,改用下面的JS代码 ' obj.ExecuteScript "window.open('https://www.google.com');" End Sub
注意事项
- 端口号可自定义(比如9223),但要保证端口未被其他程序占用,且代码中的端口必须和快捷方式里的一致
- 必须使用修改后的快捷方式启动Edge,否则Selenium无法找到可连接的实例
- 确保你的Selenium VBA绑定库是最新版本,避免兼容性问题
内容的提问来源于stack exchange,提问作者Tameem Sayed
相关产品推荐
相关产品推荐

