介绍
介绍
今天福哥要带着大家学习如何使用selenium去调用部署在Docker环境里面的Chrome浏览器的方法。为什么我们要把chromedriver部署到Docker里面呢?因为把Chrome浏览器部署到Docker里面有如下几个优点:
不用担心Chrome升级导致的需要手动升级chromedriver驱动的问题。
部署方便,Chrome浏览器和chromedriver驱动都安装好了,启动起来即可。
支持多节点部署,可以轻松部署多个Chrome浏览器环境的处理中心,提高执行效率。
接下来大家就跟着福哥学习使用Docker环境里面的Chrome浏览器处理我们的selenium程序的方法吧~
selenium/standalone-chrome
这是一个单机版本的镜像,这个里面包括一个chrome浏览器,可以用来调试selenium程序。
拉取镜像
selenium/standalone-chrome
启动容器
chromedriver的默认端口是4444(真吉利啊~~),福哥给映射到宿主机的9515端口上面了。
docker run -tid --name selenium-standalone-chrome -h selenium-standalone-chrome --memory 1g --memory-swap -1 -p 9515:4444 selenium/standalone-chrome
测试
这里有一点要说明下,这个和前面福哥讲的Windows环境的远程chromedriver不太一样的是,这里的远程地址要加上“/wd/hub”路径才行。
# set opts # chrome = webdriver.Chrome(options=opts) chrome = webdriver.Remote("http://192.168.2.88:9515/wd/hub", options=opts)
selenium/standalone-chrome-debug
这是一个单机版本的镜像,这个里面包括一个chrome浏览器,可以用来调试selenium程序。它和selenium/standalone-chrome的区别在于,这个里面还会启动一个VNC服务,可以通过VNC客户端连接进来浏览器的执行情况,便于调试selenium程序。
拉取镜像
selenium/standalone-chrome-debug
启动容器
福哥除了映射了chromedriver的默认端口4444到宿主机的9515端口外,还将VNC的5900端口也映射到宿主机的5900端口上面了。
docker run -tid --name selenium-standalone-chrome-debug -h selenium-standalone-chrome-debug --memory 1g --memory-swap -1 -p 9515:4444 -p 5900:5900 selenium/standalone-chrome-debug
测试服务
# set opts # chrome = webdriver.Chrome(options=opts) chrome = webdriver.Remote("http://192.168.2.88:9515/wd/hub", options=opts)
测试VNC
打开VNC软件,设置VNC主机为192.168.2.88:5900,进入后可以看到chromedriver环境的桌面,启动selenium程序后,可以看到浏览器执行过程。
VNC默认密码是secret!!!
连接到VNC可以看到这样的桌面。
启动selenium程序后,可以看到浏览器正在打开“同福网”页面。
我们可以进入到chromedriver虚拟机里面进行F12调试操作。
总结
今天福哥带着童鞋们学习了selenium的Docker版本的Chrome浏览器环境的搭建的技巧,通过这个Docker的镜像可以让我们更加方便地管理我们的selenium运行环境。
通过节点版本的镜像,我们还可以将我们的程序要执行的任务进行分布式的部署,提高执行效率!