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

WebdriverIO测试在CircleCI流水线中创建会话失败求助

WebdriverIO在CircleCI上「Failed to create session」问题解决

核心原因

本地运行正常但CI环境报错,本质是CircleCI的干净环境中没有启动可用的浏览器驱动或Selenium服务,本地你可能已预装Chrome+ChromeDriver或手动启动了Selenium,但CI环境需要显式配置服务。

两种可行解决方案

方案1:使用CircleCI原生浏览器服务(推荐)

无需额外安装Selenium镜像,直接利用CircleCI的环境配置Chrome及驱动,同时调整wdio配置适配:

1. 修改CircleCI config.yml

添加Chrome安装与驱动配置:

version: 2.1
jobs:
  test:
    docker:
      - image: cimg/node:20.10.0  # 匹配你的项目Node版本
    steps:
      - checkout
      - run: npm install
      # 安装Chrome及ChromeDriver
      - run:
          name: Setup Chrome Environment
          command: |
            sudo apt-get update
            sudo apt-get install -y chromium-browser chromium-chromedriver
            sudo ln -s /usr/lib/chromium-browser/chromedriver /usr/local/bin/chromedriver
      - run: npm test  # 执行测试命令

2. 修改wdio.conf.js

配置Chrome无头模式及必要参数,同时指定ChromeDriver服务:

exports.config = {
  // 保留原有其他配置
  capabilities: [{
    browserName: 'chrome',
    'goog:chromeOptions': {
      args: [
        '--headless=new',  // CI环境必须启用无头模式
        '--no-sandbox',    // 解决CircleCI容器权限限制
        '--disable-dev-shm-usage'  // 避免临时内存空间不足
      ]
    }
  }],
  services: ['chromedriver'],  // 启用WebdriverIO的ChromeDriver服务
  hostname: 'localhost',
  port: 9515  // ChromeDriver默认端口
}

方案2:使用Selenium独立服务器Docker镜像

若依赖Selenium服务,需在CircleCI中启动Selenium容器,同时调整wdio配置指向该服务:

1. 修改CircleCI config.yml

通过多容器配置启动Selenium Chrome镜像:

version: 2.1
jobs:
  test:
    docker:
      - image: cimg/node:20.10.0
      - image: selenium/standalone-chrome:latest
        environment:
          - SE_NODE_MAX_SESSIONS=1
    steps:
      - checkout
      - run: npm install
      - run: npm test

2. 修改wdio.conf.js

配置连接Selenium服务的参数:

exports.config = {
  // 保留原有其他配置
  capabilities: [{
    browserName: 'chrome'
  }],
  services: [],  // 无需启用chromedriver服务
  hostname: 'localhost',
  port: 4444,  // Selenium默认端口
  path: '/wd/hub'
}

关键注意事项

  • 无头模式是CI环境的硬性要求:无图形界面环境下,浏览器必须以无头模式启动
  • 权限与内存参数:--no-sandbox和--disable-dev-shm-usage是解决CircleCI容器环境常见问题的必备参数

内容的提问来源于stack exchange,提问作者Bilawal Wajid Ali

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 21:32:12