Docker selenium 自动化 - 使用 Python 操作 docker 运行、启用、停用和查询容器实例演示

  • 第一章:Python 操作 docker
  • ① python 运行 docker 容器实例
  • ② python 启用、停用容器实例
  • ③ python 查询、展示容器实例列表
  • 第二章:Python 调用 docker selenium 执行自动化实例演示
  • ① 源码展示
  • ② 运行效果

[系列文章篇]
篇章一:Docker selenium 自动化 - windowsdocker 的安装与运行环境检测
篇章二:Docker selenium 自动化 - Python 调用容器实例跑自动化查天气实例演示,docker selenium 自动化环境部署过程
[问题处理篇]
篇章一:Docker selenium 自动化 - 修改 /dev/shm 路径大小实例演示,“session deleted because of page crash” 问题解决
篇章二:Docker selenium 自动化 - 执行程序没反应、不执行原因,强制处理之前失败的进程,“… requests waiting for a slot to be free” 问题解决

第一章:Python 操作 docker

① python 运行 docker 容器实例

通过 pip install docker 安装 dockerpython 库后即可调用本地的 docker 程序。

import dockerclient = docker.from_env()def create_docker1(docker_name):'''作用:运行一个(selenium/hub)容器实例,可选参数detach=True为后台运行参数:docker_name为容器的名称返回:容器对象'''client.containers.run("selenium/hub", name = docker_name, ports={"4444/tcp":None}, detach = True, shm_size="500M");container = client.containers.get(docker_name);return containerdef create_docker2(docker_name):'''作用:运行一个(selenium/node-chrome)容器实例,可选参数detach=True为后台运行参数:docker_name为容器的名称返回:容器对象'''client.containers.run("selenium/node-chrome", name = docker_name, detach = True, links = {"hub":"hub"});container = client.containers.get(docker_name);return containercontainer = create_docker1("hub");
container = create_docker2("elastic_tharp");

执行完可以查看容器信息,已经创建成功并运行了。

可以正常打开 seleniumGrid 控制台。

② python 启用、停用容器实例

def stop_docker(container_name):'''作用:停用容器参数:需要停用的容器名称返回:无'''container = client.containers.get(container_name)container.stop()print("容器已停用")def start_docker(container_name):'''作用:启用容器参数:需要启用的容器名称返回:无'''container = client.containers.get(container_name)container.start()print("容器已启用")start_docker("hub")
start_docker("elastic_tharp")

③ python 查询、展示容器实例列表

def list_docker():'''作用:展示容器相关列表参数:无返回:无'''# 显示所有的容器对象results = client.containers.list()k = 0for i in results:k = k + 1;print("序号:" + str(k))print("容器短id:" + i.short_id)print("容器名:" + i.name)print("容器状态:" + i.status)print("容器端口:" + str(i.ports))print("")

第二章:Python 调用 docker selenium 执行自动化实例演示

① 源码展示

容器实例重启后,对应的端口信息会有相应的改变,所以测试的地址跟最开始创建时有所差异。

# -*- coding: UTF8 -*-
# 2021.12.13
# 小蓝枣
# docker selenium 自动化from selenium import webdriver
from time import sleepdriver = webdriver.Remote(command_executor='http://127.0.0.1:55611/wd/hub',desired_capabilities={'browserName': 'chrome'}
)try:# 登录中国气象网查看北京天气driver.get('http://www.weather.com.cn/weather1d/101010100.shtml')sleep(3)# 读取天气信息bj_temperature = driver.find_element_by_xpath('//*[@class="sk mySkyNull"]//*[@class="tem"]/*').textbj_wind_direction = driver.find_element_by_xpath('//*[@class="sk mySkyNull"]//*[@class="zs w"]/span').textbj_wind_class = driver.find_element_by_xpath('//*[@class="sk mySkyNull"]//*[@class="zs w"]/em').textbj_air_quality = driver.find_element_by_xpath('//*[@class="sk mySkyNull"]//*[@class="zs pol"]//a').textbj_weather = '''城市:北京当前温度:%s风向:%s风力:%s空气质量:%s'''%(bj_temperature,bj_wind_direction,bj_wind_class,bj_air_quality)# 打印抓取的天气信息print(bj_weather)# 保存截图driver.get_screenshot_as_file("docker_selenium_run_001.png")# 保证出错后进程正常释放
finally:driver.quit()

② 运行效果

抓取的天气信息如下:

同时可以看到保存的截图。


喜欢的点个赞❤吧!

Docker selenium自动化 - 使用python操作docker,python运行、启用、停用和查询容器实例演示相关推荐

  1. Docker selenium自动化 - Python调用容器实例跑自动化查天气实例演示,docker selenium自动化环境部署过程

    Docker selenium自动化 - 环境部署与 Python 自动化运行实战演示 第一章:docker selenium 环境部署 ① 下载 selenium 镜像 ② 容器 selenium ...

  2. Docker selenium自动化 - 执行程序没反应、不执行原因,强制处理之前失败的进程,“... requests waiting for a slot to be free“问题解决

    docker 运行 selenium 自动化发现根本不向下走了. 访问 Grid 控制台发现提示 3 requests waiting for a slot to be free. 原因是之前执行失败 ...

  3. Docker selenium自动化 - 修改/dev/shm路径大小实例演示,“session deleted because of page crash“问题解决

    Docker 执行 selenium 自动化过程报错信息: selenium.common.exceptions.WebDriverException: Message: unknown error: ...

  4. Python+selenium 自动化-基本环境搭建,调用selenium库访问百度查询天气实例演示

    Python+selenium 自动化 第一章:基本环境搭建 ① 安装 selenium 库 ② 下载对应版本的浏览器驱动 ③ 调用百度查天气演示 第一章:基本环境搭建 ① 安装 selenium 库 ...

  5. android select下拉列表_Python+selenium自动化之下拉列表操作(一)

    下拉列表操作中分为两种:select.非select 非select下拉列表操作 非select下拉列表的操作与其他元素的操作一致,定位元素,设置等待,操作元素. 下面还是以腾讯邮箱为例,查看一封邮件 ...

  6. Python 【大风号】短视频的自动上传与发布实例演示,同时支持抖音、快手、哔哩哔哩、小红书、微视、西瓜视频、微信视频号等平台的视频自动化同步发布

    导读: 本系列依次介绍目前主流的短视频平台(抖音.快手.B站.微视.小红书.好看视频.西瓜视频.视频号.搜狐视频等)的短视频自动发布,希望帮助大家更方便.高效的来进行自媒体的创作与管理. [本文介绍的 ...

  7. Python 【好看视频】短视频的自动上传与发布实例演示,同时支持抖音、快手、哔哩哔哩、小红书、微视、西瓜视频、微信视频号等平台的视频自动化同步发布

    导读: 本系列依次介绍目前主流的短视频平台(抖音.快手.B站.微视.小红书.好看视频.西瓜视频.视频号.搜狐视频等)的短视频自动发布,希望帮助大家更方便.高效的来进行自媒体的创作与管理. [本文介绍的 ...

  8. Python 【抖音】短视频的自动上传与发布实例演示,同时支持快手、哔哩哔哩、小红书、微视、西瓜视频、微信视频号等平台的视频自动化同步发布

    导读: 本系列依次介绍目前主流的短视频平台(抖音.快手.B站.微视.小红书.好看视频.西瓜视频.视频号.搜狐视频等)的短视频自动发布,希望帮助大家更方便.高效的来进行自媒体的创作与管理. [本文介绍的 ...

  9. Python 【西瓜视频】的短视频自动上传与发布实例演示,同时支持抖音、快手、哔哩哔哩、小红书、微视、微信视频号等平台的视频自动化同步发布

    导读: 本系列依次介绍目前主流的短视频平台(抖音.快手.B站.微视.小红书.好看视频.西瓜视频.视频号.搜狐视频等)的短视频自动发布,希望帮助大家更方便.高效的来进行自媒体的创作与管理. [本文介绍的 ...

最新文章

  1. notepad++每行首尾添加内容
  2. linux下elasticsearch的安装
  3. [html] 在head标签中必不少的是什么?
  4. 程序员面试金典 - 面试题 16.24. 数对和(双指针/哈希map)
  5. 图书管理系统 java 源码_[源码和文档分享]基于C语言和SQL SERVER数据库实现的图书管理系统...
  6. java内存漏洞_处理Java程序中的内存漏洞
  7. 谭浩强C语言练习题及详细答案
  8. Spring学习路线
  9. 电脑系统没有自带的字体-楷体GB2312字体 免费版提供下载
  10. 免费的端口映射工具哪个好用
  11. C# IndexOf用法
  12. 李开复:非一流学校学生的出路-李开复经验集-IT人物-酷勤网
  13. 个人安卓学习笔记---搭建Androd开发环境
  14. 请为横线处选择合适的程序使得程序的运行结果是123 ( )
  15. Quectel EC20 获取 MCC,MNC,APN
  16. seo和sem是什么意思
  17. 柱状图怎么设置xy轴_excel表格xy轴数据-怎么做用excel设置xy轴
  18. 笔记:PoseCNN:A Convolutional Neural Network for 6D Object Pose Estimation in Cluttered Scenes
  19. 【解决方案】雷电模拟器去开屏广告
  20. 职教计算机录取分数,今年高职院校录取分数线是多少?

热门文章

  1. R语言:怎么进行异常检测
  2. jquery实现加载更多效果
  3. poj1195 Mobile phones 二维线段树入门
  4. 高通android开源代码下载
  5. 如何使用adb命令发送keyevent
  6. php微服务架构设计模式,《微服务架构设计模式》读书笔记---第十一章:开发面向生产环境的微服务应用...
  7. java从Object类型转换成double类型
  8. CSS3秘笈第三版涵盖HTML5学习笔记6~8章
  9. Effect of Switchovers, Failovers, and Control File Creation on Backups
  10. javascript 网页设计 怎么在同一位置显示几张不同的图片(图片自动变换)