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

如何使用Selenium JavaScript WebDriver连接已激活浏览器会话

复用已有的Selenium Chrome会话

问题原因

你直接实例化WebDriver和Session的代码缺少**HTTP执行器(Executor)**配置,这是WebDriver与ChromeDriver服务器通信的核心组件,所以无法生成和Builder创建的一致的实例结构,也无法成功连接已有会话。

正确实现方案

要连接已激活的会话,必须指定ChromeDriver服务器地址,创建对应的执行器并绑定到WebDriver实例中,完整代码如下:

const { WebDriver, Session, Capabilities, HttpExecutor, HttpClient } = require("selenium-webdriver");

// 替换为你的目标会话ID
const targetSessionId = '5cdfff6e4dfd7e5551795d365db289b2';
// ChromeDriver默认服务地址,若修改过端口请对应调整
const driverServerUrl = 'http://localhost:9515';

// 创建HTTP客户端与执行器
const httpClient = HttpClient.createClient(driverServerUrl);
const executor = new HttpExecutor(httpClient);

// 初始化会话与WebDriver实例
const session = new Session(targetSessionId, Capabilities.chrome());
const driver = new WebDriver(session, executor);

// 测试连接:获取当前页面标题
driver.getTitle().then(title => {
    console.log('当前页面标题:', title);
}).catch(err => {
    console.error('会话连接失败:', err);
});

关键细节

  • Executor是核心:Builder.build()内部会自动创建并绑定执行器,手动实例化WebDriver时必须显式配置,否则无法和ChromeDriver建立通信。
  • 确认服务状态:要连接的会话对应的ChromeDriver必须处于运行状态,且会话未被关闭,否则会抛出会话不存在的错误。
  • 实例结构匹配:运行上述代码后,打印driver会得到和Builder创建的完全一致的实例结构,包含session_、executor_等关键属性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 21:00:51