多测师是一家拥有先进的教学理念,强大的师资团队,业内好评甚多的接口自动化测试培训机构!

17727591462

联系电话

您现在所在位置:接口自动化测试培训 > 新闻资讯

selenium远程浏览器selenoid服务搭建-自动化测试

更新时间:2022-08-12 09:24:03 作者:多测师 浏览:46

  进入管理器地址下载对应的版本,当前环境是centos,所以下载linux版本的,windows还没尝试过安装,下载完成之后,将文件上传到服务器。

selenium远程浏览器selenoid服务搭建-自动化测试

  重命名文件

  mv cm_linux_amd64 cm

  执行安装命令,前提必须下载并安装docker!!! 推荐命令yum install docker -y

  # 将文件变成可执行文件,输入命令

  chmod +x cm

  # 运行一个命令来启动selenoid, 会自动下载依赖,并启动。默认占用宿主机端口4444, 如果当前4444端口被占用,就会启动失败。

  ./cm selenoid start --vnc

  # 启动UI界面

  ./cm selenoid-ui start

  启动成功

  浏览器的默认配置信息都在可执行文件的同级目录下,名称.aerokube

  启动成功后输入:http://你服务器的ip:4444,可查看服务启动情况。出面以下语句,代表服务能被访问到。

  如果你无法访问,可能会面对以下几个问题。

  问题1: 服务器防火墙端口是否开启,可以执行以下命令。

  查看防火墙是否开启

  systemctl status firewalld

  若没有开启则是开启状态

  systemctl start firewalld 关闭则start改为stop

  1、开放端口

  firewall-cmd --zone=public --add-port=5672/tcp --permanent # 开放5672端口

  firewall-cmd --zone=public --remove-port=5672/tcp --permanent #关闭5672端口

  firewall-cmd --reload # 配置立即生效

  2、查看防火墙所有开放的端口

  firewall-cmd --zone=public --list-ports

  -------------------------------------------------------------------------------------------

  问题2:如果是阿里云的服务器,需要在阿里云-控制台-安全组-开放端口,亲测4444端口开启安全组也没办法访问,具体原因不详。如果遇到这样的情况,看下面的自定义启动!!!

  自定义启动命令,前提是已经执行过了./cm selenoid start --vnc命令

  ·先查看docker容器是否已经启动, 如果启动需要停止并删除容器

  # 查看容器命令 docker ps -a

  # 停止容器命令:docker stop 容器id

  # 删除容器命令:docker rm 容器id

  # 自定义启动命令

  docker run -d --name selenoid -p 5555:4444 -e TZ=Asia/Shanghai -v /root/.aerokube/selenoid/:/etc/selenoid/ -v /var/run/docker.sock:/var/run/docker.sock -v /root/.aerokube/selenoid/video/:/data/selenoid/video/ -e OVERRIDE_VIDEO_OUTPUT_DIR=/root/.aerokube/selenoid/video/ --privileged aerokube/selenoid:latest -conf /etc/selenoid/browsers.json -limit 10 -video-output-dir /data/selenoid/video/

  具体需要注意的已备注,启动服务完成后尝试http://你的ip:5555能否访问到服务,前台开启防火墙端口或者安全组。

  selenoid-ui

  文档地址: http://aerokube.com/selenoid-ui/latest/#_documentation

  github: https://github.com/aerokube/selenoid-ui

  selenoid已经集成了selenoid-ui,具体可以看官方文档,一键启动./cm selenoid-ui start

  自定义启动命令,前提是已经启动好selenoid的服务。

  # 启动命令

  docker run -d --name selenoid-ui --privileged=true -p 8888:8080 aerokube/selenoid-ui --selenoid-uri http://你的ip地址:你的selenoid启动时宿主机的端口号

  # 参数说明

  --privileged=true 必须加,防止docker权限错误问题。

  -p 8888:8080 8888是宿主机端口号,8080是容器端口号,容器端口号不要改。

  --selenoid-uri 指定selenoid的地址,例子:我们上面配置的selenoid的端口号是5555,这里就是:http://你的ip地址(不要用127.0.0.1/localhost):5555

  启动成功后,如果出现无法访问时,请确保8888端口被放行,或者安全组被放。

  如果出现没有浏览器可选的情况,就是selenoid的浏览器配置文件出现问题,具体可查看.aerokube\selenoid\browsers.json,尝试更改port字段,其他保持不变。

  调试服务

  以下是python脚本编写的方式调用远程浏览器

  import time

  from selenium import webdriver

  capabilities = {

  # 还有具体的参数定制,可以看官方文档。

  "browserName": "chrome",

  "browserVersion": "102.0",

  "selenoid:options": {

  # 开启实时预览

  "enableVNC": True,

  # 录制视频

  "enableVideo": True

  }

  }

  driver = webdriver.Remote(

  command_executor="这里就是填selenoid-ui界面告诉你的地址",

  desired_capabilities=capabilities)

  driver.maximize_window()

  print(driver.session_id)

  driver.get("https://www.baidu.com")

  driver.find_element_by_id("kw").send_keys("淘宝")

  time.sleep(5)

  driver.close()

  driver.quit()

  python运行没有报错的话,就可以到selenoid-ui的界面查看运行情况。

  以上内容为大家介绍了自动化测试中的selenium远程浏览器selenoid服务搭建,本文由多测师亲自撰写,希望对大家有所帮助。了解更多自动化测试相关知识:https://www.aichudan.com/xwzx/

联系电话

17727591462

返回顶部