Docker容器内运行Selenium客户端出现PKIX path building failed报错
问题1:客户端无法连接Selenium Grid Hub节点的原因
你遇到的PKIX路径构建失败报错核心是容器内的JDK运行环境不信任Selenium Grid站点的SSL证书,具体诱因如下:
- 你当前Dockerfile中的
update-ca-certificates命令只会更新Linux系统层面的CA证书存储,而OpenJDK的根证书存储cacerts是独立维护的,默认不会同步系统新增的证书。你本地运行正常是因为本地Java环境的cacerts已经提前导入了Grid站点的证书,或者本地运行时关闭了SSL验证逻辑。 - 补充排查点:
- 确认你添加的
ssl.crt是Grid站点对应的根证书/自签名证书,证书格式为PEM格式 - 可进入容器执行
keytool命令验证证书是否已导入JDK的cacerts:keytool -list -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit | grep 证书对应别名
- 确认你添加的
- 修复方案参考:在Dockerfile的RUN指令中新增导入证书到JDK cacerts的逻辑:
RUN update-ca-certificates && \ keytool -importcert -file /usr/local/share/ca-certificates/ssl.crt -alias grid-ssl -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit -noprompt
问题2:客户端镜像是否需要安装chromeDriver、Xvnc等组件
不需要。
Selenium Grid的架构中,测试客户端仅负责向Hub节点提交测试任务,实际的浏览器运行、驱动调用全都是在Grid的Node节点上执行的,客户端仅需要包含Selenium相关依赖、能够正常和Hub通信即可,不需要安装浏览器、chromedriver、Xvnc等运行浏览器所需的组件。
内容的提问来源于stack exchange,提问作者Susanta Adhikary
相关产品推荐
相关产品推荐

