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

Selenium4下使用Behat+Mink Selenium2驱动运行Edge测试的问题

问题解答

可行性说明

可以在Selenium 4 Grid环境下,使用Mink Selenium2驱动在Edge浏览器上运行测试,你遇到的是启动配置不匹配导致的Edge启动失败问题。

问题根因

你遇到的DevToolsActivePort文件不存在报错,本质是两个核心问题:

  • Mink Selenium2的Edge能力配置层级错误,Selenium4无法正确识别你配置的启动参数
  • Edge远程调试端口默认绑定本地回环地址,Grid节点无法访问,导致端口绑定失败

解决方案步骤

1. 修正Behat配置结构

把edgeOptions从extra_capabilities层级移出,直接放在selenium2.capabilities下,同时追加缺少的必要启动参数,修正后配置如下:

default:
    suites:
      default:
        filters:
          tags: ~@wip
        paths: ['%paths.base%/storage/features']
    gherkin:
      cache: ~
    extensions:
      Behat\MinkExtension:
        base_url: http://www.google.com
        javascript_session: selenium2
        browser_name: edge
        selenium2:
          capabilities:
            browserName: MicrosoftEdge
            edgeOptions:
              args:
                - "--no-sandbox"
                - "--disable-dev-shm-usage"
                - "--headless"
                - "--disable-gpu"
                - "--dns-prefetch-disable"
                - "--disable-setuid-sandbox"
                - "--window-size=1920,1080"
                - "--remote-debugging-port=9222"
                # 新增以下三个参数解决端口绑定和启动崩溃问题
                - "--remote-debugging-address=0.0.0.0"
                - "--no-first-run"
                - "--no-default-browser-check"

2. 校验版本匹配

确认Selenium Grid节点上安装的Edge浏览器大版本和msedgedriver版本完全一致,你日志中msedgedriver版本为95.0.1020.30,对应Edge浏览器也必须为95系列版本,版本不匹配会直接导致启动崩溃。

3. 容器环境额外校验

如果Selenium Grid节点运行在Docker容器内:

  • 确认/usr/bin/microsoft-edge文件存在且有可执行权限
  • 若以非root用户运行容器,确保--no-sandbox参数已正确配置

4. 兼容性优化

如果调整配置后依然报错,可根据Edge版本调整无头模式参数:

  • Edge 96及以上版本,将--headless替换为--headless=new,使用新的无头模式,兼容性更强
  • 追加--disable-features=VizDisplayCompositor参数,屏蔽GPU渲染相关的组件,降低启动崩溃概率

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 21:27:04