如何获取Playwright Docker容器的playwrightUrl以集成Karate脚本?
Playwright Docker容器获取WebSocket端点供Karate使用的方法
你使用的mcr.microsoft.com/playwright:bionic镜像默认不会主动启动Playwright WebSocket服务,你确实需要手动启动服务才能获取对应端点,无需自行编写node server.js,使用Playwright内置命令即可完成操作,具体步骤如下:
步骤1:启动Playwright Server
你可以选择两种方式启动:
方式一:进入已运行的容器手动启动
- 执行命令进入容器:
docker exec -it playwright bash - 容器内执行启动命令,绑定0.0.0.0允许外部访问:
npx playwright run-server --port 5900 --host 0.0.0.0 - 启动完成后终端会直接输出WebSocket端点,格式为
ws://0.0.0.0:5900/<随机串>,宿主机使用时替换为ws://localhost:5900/<随机串>即可。
方式二:修改容器启动命令,自动启动服务
直接将服务启动逻辑加入docker run命令,容器启动时自动拉起服务:
docker run --name playwright -it --rm --ipc=host --cap-add=SYS_ADMIN -u root -p 5900:5900 -v $(pwd):/src -v /home/Automation/:/root/.m2 mcr.microsoft.com/playwright:bionic bash -c "npx playwright run-server --port 5900 --host 0.0.0.0" &
启动后执行docker logs playwright即可查看输出的WebSocket端点。
Karate侧配置
拿到端点后,在karate配置文件中指定对应url即可:karate.configure('playwright', { url: 'ws://localhost:5900/你的随机串' });
注意事项
- 启动服务必须加
--host 0.0.0.0参数,否则服务默认仅监听容器本地127.0.0.1地址,宿主机无法访问 - 你已配置的5900端口映射无需修改,可直接使用
内容的提问来源于stack exchange,提问作者SUBRAMANIA SIVA
相关产品推荐
相关产品推荐

