docker+selenium grid+vnc viewer 分布式集群环境部署

霸气de小男生 提交于 2020-01-09 15:14:13

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

centos7+docker+selenium grid+vnc viewer 分布式环境部署

一、docker环境搭建

创建安装环境
# 清理centos原有docker环境
yum remove docker docker-client
docker-client-latest
docker-common
docker-latest
docker-latest-logrotate
docker-logrotate
docker-selinux
docker-engine-selinux docker-engine
rm -rf /etc/systemd/system/docker.service.d
rm -rf /var/lib/docker
rm -rf /var/run/docker
设置仓库
# 设置仓库
yum install -y yum-utils device-mapper-persistent-data lvm2
设置稳定的仓库。
yum-config-manager --add-repo
https://download.docker.com/linux/centos/docker-ce.repo

安装
# 下载相关包(下载:docker-ce-17.03.2.ce-1.el7.centos.x86_64.rpm )
安装依赖包selinux
yum install
https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker- ce-selinux-17.03.2.ce-1.el7.centos.noarch.rpm
安装docker-ce yum install docker-ce-17.03.2.ce-1.el7.centos.x86_64.rpm
启动docker
systemctl start docker
配置加速源
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
# 阿里源
"registry-mirrors": ["https://xxxx.mirror.aliyuncs.com"]
# 网易源:http://hub-mirror.c.163.com
}
EOF
重启docker
systemctl daemon-reload
systemctl restart docker

二、docker拉取镜像

搜索镜像
#docker search selenium
拉取相关镜像
#docker pull selenium/hub
docker pull selenium/node-chrome-debug(该镜像支持vnc viewer)
docker pull selenium/node-firefox-debug(该镜像支持vnc viewer)
启动hub节点 #docker run -d --name selenium-hub -p 4444:4444 selenium/hub -v /dev/shm:/dev/shm:latest
docker run -d -P -p 5900:5900 -e NODE_MAX_INSTANCES=3 -e NODE_MAX_SESSION=3 --link selenium-hub:hub -v /dev/shm:/dev/shm selenium/node-chrome-debug:latest
各种浏览器同理
浏览器访问:宿主机ip+4444/grid/console
# 该地址能看到所有node节点相关信息,以及可使用的ip端口。

三、脚本运行

# 非图像识别脚本写法
from selenium import webdriver   
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities   
driver = webdriver.Remote(
	command_executor='http://192.168.43.213:4444/wd/hub',
	desired_capabilities=DesiredCapabilities.CHROME)   
注:192.168.43.213 为宿主机ip,端口为hub端口   
print("运行百度搜索")   
driver.maximize_window()   
driver.implicitly_wait(20)   
driver.get("http://www.baidu.com/")   
driver.find_element_by_id('kw').send_keys('可口可乐')   
driver.find_element_by_id('su').click()   

# 图像识别写法(基于airtest)
from selenium.webdriver import ActionChains   
from selenium.webdriver.common.desired_capabilities import    DesiredCapabilities   
from airtest_selenium.proxy import WebRemote,WebChrome   
from airtest.core.api import *   
driver = WebRemote(   
	command_executor='http://192.168.43.213:4444/wd/hub',   
	desired_capabilities=DesiredCapabilities.CHROME)   
print("运行百度搜索")   
driver.maximize_window()   
driver.implicitly_wait(20)   
driver.get("http://www.baidu.com/")   
driver.find_element_by_id('kw').send_keys('可口可乐')   
driver.find_element_by_id('su').click()   
pos = driver.airtest_touch(Template(r"test.png"))   
ActionChains(driver).move_by_offset(xoffset=pos[0],yoffset=pos[1]).click().perform()   
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!