Docker selenium 自动化 您所在的位置:网站首页 python容器操作 Docker selenium 自动化

Docker selenium 自动化

2024-05-10 19:02| 来源: 网络整理| 查看: 265

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

系列文章篇

篇章一: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 程序。

代码语言:javascript复制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 启用、停用容器实例代码语言:javascript复制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 查询、展示容器实例列表代码语言:javascript复制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 执行自动化实例演示① 源码展示

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

代码语言:javascript复制# -*- 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()② 运行效果

抓取的天气信息如下:

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



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有