51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1102|回复: 0
打印 上一主题 下一主题

[selenium] 远程浏览器selenoid服务搭建之selenium

[复制链接]
  • TA的每日心情
    擦汗
    1 小时前
  • 签到天数: 1045 天

    连续签到: 3 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2022-8-11 10:26:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    进入管理器地址下载对应的版

    当前环境是centos,所以下载linux版本的,windows还没尝试过安装


    下载完成之后,将文件上传到服务器

    重命名文件
    # 将文件变成可执行文件,输入命令
      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容器是否已经启动, 如果启动需要停止并删除容器
    1. <p style="line-height: 30px; text-indent: 2em;"># 查看容器命令 docker ps -a
    2.   # 停止容器命令:docker stop 容器id
    3.   # 删除容器命令:docker rm 容器id
    4.   # 自定义启动命令
    5.   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/</p>
    复制代码
    具体需要注意的已备注,启动服务完成后尝试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的服务。
    1. # 启动命令
    2.   docker run -d --name selenoid-ui --privileged=true -p 8888:8080 aerokube/selenoid-ui --selenoid-uri http://你的ip地址:你的selenoid启动时宿主机的端口号
    3.   # 参数说明
    4.   --privileged=true  必须加,防止docker权限错误问题。
    5.   -p 8888:8080       8888是宿主机端口号,8080是容器端口号,容器端口号不要改。
    6.   --selenoid-uri     指定selenoid的地址,例子:我们上面配置的selenoid的端口号是5555,这里就是:http://你的ip地址(不要用127.0.0.1/localhost):5555
    复制代码
    启动成功后,如果出现无法访问时,请确保8888端口被放行,或者安全组被放。

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

    调试服务
      以下是python脚本编写的方式调用远程浏览器
    1. import time
    2.   from selenium import webdriver
    3.   capabilities = {
    4.       # 还有具体的参数定制,可以看官方文档。
    5.       "browserName": "chrome",
    6.       "browserVersion": "102.0",
    7.       "selenoid:options": {
    8.           # 开启实时预览
    9.           "enableVNC": True,
    10.           # 录制视频
    11.           "enableVideo": True
    12.       }
    13.   }
    14.   driver = webdriver.Remote(
    15.       command_executor="这里就是填selenoid-ui界面告诉你的地址,具体看上图介绍",
    16.       desired_capabilities=capabilities)
    17.   driver.maximize_window()
    18.   print(driver.session_id)
    19.   driver.get("https://www.baidu.com")
    20.   driver.find_element_by_id("kw").send_keys("淘宝")
    21.   time.sleep(5)
    22.   driver.close()
    23.   driver.quit()
    复制代码
    python运行没有报错的话,就可以到selenoid-ui的界面查看运行情况。




    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-13 10:30 , Processed in 0.065708 second(s), 25 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表