Testcontainers搭配WebDriver使用时Chrome启动报错及浏览器支持问题咨询
Testcontainers浏览器容器使用问题解答
一、Chrome启动超时报错解决方案
你可以按照以下步骤逐一排查问题:
- 配置匹配校验:你贴出的代码中传入的是
FirefoxOptions,但错误日志显示实际在申请Chrome会话,先确认运行代码和配置是否一致,要启动Chrome就传入对应ChromeOptions,不要混用不同浏览器的配置项。 - 驱动版本兼容:日志中的ChromeDriver版本为2.14,该版本仅支持Chrome 39~42,和Testcontainers默认拉取的最新Chrome镜像版本完全不匹配。你需要明确指定兼容的镜像版本,修改后的参考代码如下:
BrowserWebDriverContainer<?> container = new BrowserWebDriverContainer<>("selenium/standalone-chrome:114.0") .withCapabilities(new ChromeOptions()) .withRecordingMode(VncRecordingMode.RECORD_ALL, new File("target"), VncRecordingFormat.MP4) .withStartupTimeout(Duration.ofMinutes(10)); - 网络配置排查:你当前配置了自定义新建网络,可能导致容器端口连通性检查出现异常,先去掉
withNetwork(Network.newNetwork())配置,使用默认桥接网络验证是否可以正常启动,再根据实际需求调整网络配置。 - Docker资源检查:确保Docker运行环境分配的内存不低于2GB,Selenium浏览器容器运行需要足够的内存资源,内存不足会直接导致启动超时。
二、BrowserWebDriverContainer浏览器支持说明
官方默认的BrowserWebDriverContainer仅预装了Chrome和Firefox两种浏览器的适配支持,Edge、Yandex浏览器没有官方默认配置。
如果需要使用Edge浏览器,可以直接基于Selenium官方提供的selenium/standalone-edge镜像自定义容器,搭配对应EdgeOptions即可正常使用;Yandex浏览器需要你自行构建包含Yandex浏览器和对应驱动的Docker镜像,再通过Testcontainers加载自定义镜像实现支持。
内容的提问来源于stack exchange,提问作者Александр Денисов
相关产品推荐
相关产品推荐

