Selenium Docker动态网格:为动态生成容器配置时区
解决Selenium Hub动态节点时区不生效问题
给Hub的节点配置注入时区环境变量
编辑你的config.toml文件,在节点相关配置块里添加时区环境变量,确保Hub动态生成节点时自动传递这个参数:[node] # 其他节点配置(比如镜像、端口映射等) env = ["TZ=America/Montreal"]确保Docker Compose中Hub的时区配置正确
在Docker Compose的Hub服务里设置TZ环境变量,同时挂载正确的config.toml文件:services: selenium-hub: image: selenium/hub:latest environment: - TZ=America/Montreal volumes: - ./config.toml:/opt/selenium/config.toml ports: - "4444:4444"自定义节点镜像(可选)
如果默认的Selenium节点镜像本身时区配置有问题,可以自己构建镜像,在Dockerfile里预先设置时区:FROM selenium/node-chrome:latest ENV TZ=America/Montreal RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone然后在config.toml里指定使用这个自定义镜像。
验证时区是否生效
进入动态生成的节点容器,执行date命令查看当前时区:docker exec <你的节点容器ID> date或者在测试脚本里通过JS获取时区:
from selenium import webdriver driver = webdriver.Remote("http://localhost:4444/wd/hub", webdriver.DesiredCapabilities.CHROME) print(driver.execute_script('return Intl.DateTimeFormat().resolvedOptions().timeZone')) driver.quit()
内容的提问来源于stack exchange,提问作者Anass
相关产品推荐
相关产品推荐

