背景
最近在尝试使用zalenium和selenoid进行ui自动化,因为zalenium官方已不再维护,所以i选择selenoid。
使用docker安装selenoid
1.拉取镜像
docker pull aerokube/selenoid:latest-release
docker pull aerokube/selenoid-ui
//拉取一个浏览器镜像
docker pull selenoid/vnc:chrome_78.0
查看镜像
docker images
2.新建配置文件
在指定目录config新建browsers.json文件,这里的config路径可以自定义
在browsers.json添加刚才下载的浏览器
{
"chrome": {
"default": "78.0",
"versions": {
"78.0": {
"image": "selenoid/vnc:chrome_78.0",
"port":"4444",
"path":"/",
"env" : ["LANG=ru_RU.UTF-8", "LANGUAGE=ru:en", "LC_ALL=ru_RU.UTF-8"]
}
}
}
}
3.运行镜像
1.启动selenoid
docker run -d --name selenoid \
-p 4444:4444 \
-v /data/selenoid/config/:/etc/selenoid/config/ \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /data/selenoid/video/:/data/selenoid/video/ \
-e OVERRIDE_VIDEO_OUTPUT_DIR=/data/selenoid/video/ \
--privileged aerokube/selenoid:latest-release \
-conf /etc/selenoid/config/browsers.json -limit 10 -video-output-dir /data/selenoid/video/
/data/selenoid/config/ 为本机存放browsers.json的路径
浏览器打开:ip:4444
2.运行selenoid-ui
1.启动docker命令
docker run -d --name selenoid-ui -p 8080:8080 aerokube/selenoid-ui --selenoid-uri http://ip:4444
ip:服务器地址
2.访问http://ip:8080/#/capabilities/
可以看到下拉选项browsers.json的配置
3.下拉选择浏览器后在侧边选择语言版本进行调用
测试脚本
from selenium import webdriver
capabilities = {
"browserName": "chrome",
"browserVersion": "78.0",
"selenoid:options": {
"enableVNC": True,
"enableVideo": False
}
}
driver = webdriver.Remote(
command_executor="http://ip:4444/wd/hub",
desired_capabilities=capabilities)
driver.get("https://www.baidu.com")
替换测试脚本中的ip
4.如果需要开启视频录制功能,则需要额外docker镜像
docke pull selenoid/video-recorder:latest-release
将测试脚本中的enableVideo设置为True
访问http://ip:4444/video/
添加浏览器
如果当前浏览器已经无法满足需求,可以手动需要添加浏览器,添加步骤如下:
docker pull 需要的浏览器版本
修改browsers.json文件
重启 selenoid**