100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > Docker selenium自动化 - 使用python操作docker python运行 启用 停用和查询容器实例演示

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

时间:2023-01-12 15:33:42

相关推荐

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

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 -*-# .12.13# 小蓝枣# docker selenium 自动化from selenium import webdriverfrom time import sleepdriver = webdriver.Remote(command_executor='http://127.0.0.1:55611/wd/hub',desired_capabilities={'browserName': 'chrome'})try:# 登录中国气象网查看北京天气driver.get('/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()

② 运行效果

抓取的天气信息如下:

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

喜欢的点个赞❤吧!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。