Docker selenium 自动化 - 使用python操作docker,python运行启用停用和查询容器实例演示
Posted 挣扎的蓝藻
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker selenium 自动化 - 使用python操作docker,python运行启用停用和查询容器实例演示相关的知识,希望对你有一定的参考价值。
Docker selenium 自动化 - 使用 Python 操作 docker 运行、启用、停用和查询容器实例演示
[系列文章篇]
篇章一:Docker selenium 自动化 - windows 版 docker 的安装与运行环境检测
篇章二: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 安装 docker 的 python 库后即可调用本地的 docker 程序。
import docker
client = 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 container
def 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 container
container = create_docker1("hub");
container = create_docker2("elastic_tharp");
执行完可以查看容器信息,已经创建成功并运行了。
可以正常打开 selenium 的 Grid 控制台。
② 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 = 0
for 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 sleep
driver = 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"]/*').text
bj_wind_direction = driver.find_element_by_xpath('//*[@class="sk mySkyNull"]//*[@class="zs w"]/span').text
bj_wind_class = driver.find_element_by_xpath('//*[@class="sk mySkyNull"]//*[@class="zs w"]/em').text
bj_air_quality = driver.find_element_by_xpath('//*[@class="sk mySkyNull"]//*[@class="zs pol"]//a').text
bj_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运行启用停用和查询容器实例演示的主要内容,如果未能解决你的问题,请参考以下文章
Docker selenium自动化 - Python调用容器实例跑自动化查天气实例演示,docker selenium自动化环境部署过程