selenium===使用docker搭建selenium分布式测试环境

准备:

#请在此之前先了解,selenium grid ;参考:selenium-grid ,下载地址 win-本地部署过程

>>>环境准备: Linux操作系统

>>>给Linux安装Python(linux 默认已经安装)

>>>安装docker参考Ubuntu安装docker步骤,安装完毕后检验,安装是否正确

>>>docker search selenium   命令查看需要安装的selenium包 ;目前只支持Chrome 和 Firefox两种浏览器

>>>下载主 hub 对象: sudo docker pull selenium/hub

>>>下载主node - Chrome 镜像 :sudo docker pull selenium/node-chrome

>>>下载完成后查看镜像:sudo docker images

 >>>启动主hub 容器:sudo docker run -d -P --name selenium-hub selenium/hub

  • -d 表示容器以守护态(Daemonized)形式运行。
  • -P 表示 Docker 会随机映射一个 49000~49900 的端口到内部容器开放的网络端口。

>>> 启动分支node 容器 :sudo docker run -d --link selenium-hub:hub selenium/node-chrome

  • --link 通过 link 关联 selenium-hub 容器,并为其设置了别名hub

 >>>查看容器:docker ps  -a 

  * Selenium/hub 容器的端口号为 4444,对Ubuntu映射的端口为 32768,前面通过 -P 参数自动分配

>>> OK!环境搭建至此结束。使用  http://Linux外网地址:32768/grid/console  ; 查看环境

>>> 运行本地的测试脚本;

from selenium import webdriver
from time import sleep

driver = webdriver.Remote(
command_executor='http://Linux外网地址:32768/wd/hub',
desired_capabilities={'browserName': 'chrome'}
)

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

driver.find_element_by_id("kw").send_keys("selenium grid")
driver.find_element_by_id("su").click()
sleep(2)
driver.get_screenshot_as_file("result-1.png")
driver.quit()

整个执行不过是不可见的,因为他它的运行环境在Linux;要想知道他有没有执行,可以截图验证;

* 如果执行过程中,发现报 Java 空指针异常的错误,请删除掉安装的容器和镜像文件,重新安装一次selenium/hub 和 selenium/node-chrome ;删除 请参考:停止、删除所有的docker容器和镜像

总结

  • 这是一个 cs架构的分布式测试模式,测试环境使用docker容器创建,更加稳定,减少了搭建环境带来的脚本执行出错困扰
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
DockerSelenium可以很好地结合用于分布式爬虫。通过使用Docker,您可以轻松地创建和管理多个容器,每个容器都可以运行一个爬虫实例。这样可以实现爬虫任务的并行处理,提高爬取效率。 下面是一些步骤来构建一个基于DockerSelenium分布式爬虫系统: 1. 安装Docker:您需要先安装Docker引擎,以便能够管理和运行容器。您可以在Docker官网上找到适合您操作系统的安装包和安装指南。 2. 创建爬虫镜像:使用Dockerfile创建一个自定义镜像,其中包含了您的爬虫代码和所需的依赖。这个镜像将作为爬虫的运行环境。 3. 编写爬虫代码:使用Selenium编写您的爬虫代码,确保它可以在启动浏览器时自动化执行各种操作,如点击、填写表单等。 4. 配置分布式环境:使用Docker Compose或Kubernetes等工具,在多台机器上部署并配置多个容器。您可以指定每个容器使用不同的代理、浏览器配置、用户代理等设置,以模拟多个用户进行并发爬取。 5. 控制任务调度:使用工具如Celery等,将爬虫任务分发给不同的容器进行处理。您可以根据需求进行任务调度和管理,监控任务的进度和状态。 通过结合DockerSelenium,您可以实现一个高效的分布式爬虫系统,提高爬取速度和稳定性。当然,在实际应用中还需要考虑一些其他的因素,如验证码处理、反爬虫策略等。希望这些对您有所帮助!如果您有任何进一步的问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

软件测试技术

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值