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

Docker化Browserless-Chrome运行Mediawiki Selenium页面加载时挂起问题

背景

我编写了一份makefile,仅需执行单个make命令,即可从零开始在本地机器拉取并启动Docker化的Mediawiki实例,目前该方案运行效果良好,欢迎试用。

目标

我希望同样通过makefile简化操作流程,支持在Docker容器中原样运行Mediawiki的Selenium测试,同时可实时观看测试执行过程,一键启动整套流程。

实现方案

当前处于开发阶段的分支新增了两类容器:

  • 一类用于运行Mediawiki Selenium测试
  • 另一类是browserless-chrome容器,支持测试运行过程中实时查看、调试测试用例

根据分支README顶部的说明,执行make启动所有服务后,运行make runseleniumtests即可启动测试。执行该命令后会自动打开浏览器窗口,展示browserless-chrome容器中运行的Selenium测试过程,但该功能仅能部分正常工作。

问题现象

在若干条测试正常运行后,会出现如下报错:
Protocol error (Input.dispatchMouseEvent): Target closed.

报错似乎都在测试操作触发新页面加载时出现,初步怀疑问题根源在于browserless-chrome容器的Chrome会话管理机制,暂未确认准确原因,欢迎提供排查思路。这套makefile的设计初衷是大幅降低从零搭建环境的门槛,仅需执行少量命令即可复现测试运行过程与上述报错。

其他补充信息

  • 测试运行失败后,在宿主机执行curl -s http://127.0.0.1:3000/sessions | python3 -m json.tool,可看到存在多个browserless-chrome会话
  • 非Docker部署的环境运行触发页面加载的测试时无任何异常,暂不清楚如何调整配置让Docker化部署的表现与非Docker环境一致

在与Browserless支持团队的邮件沟通中,对方表示曾遇到过类似问题但尚未定位根因,相关反馈如下:

问题根源可能是打开实时调试器查看运行过程时,click事件无法正常工作。经确认(我已验证该现象),如果不打开实时查看器,测试可以继续推进,后续仅会抛出选择器无法找到的相关错误。

我之前也遇到过实时调试器的这类异常行为,当时我关闭了实时查看功能,因为无法看到哪个选择器未命中,我导出了运行时的截图,最终发现是视口配置问题:远程会话的视口尺寸更小,样式渲染结果与本地机器存在差异,设置正确的视口尺寸后选择器即可正常命中——但这是我当时遇到的特定场景问题,不一定适用于你的情况。

目前可以确认的是,查看实时会话时确实会偶发这类异常问题,我们暂未明确问题的具体成因。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 21:27:37