Docker selenium自动化 - 使用python操作docker,python运行、启用、停用和查询容器实例演示
Docker selenium 自動化 - 使用 Python 操作 docker 運行、啟用、停用和查詢?nèi)萜鲗嵗菔?/font>
- 第一章:Python 操作 docker
- ① python 運行 docker 容器實例
- ② python 啟用、停用容器實例
- ③ python 查詢、展示容器實例列表
- 第二章:Python 調(diào)用 docker selenium 執(zhí)行自動化實例演示
- ① 源碼展示
- ② 運行效果
[系列文章篇]
篇章一:Docker selenium 自動化 - windows 版 docker 的安裝與運行環(huán)境檢測
篇章二:Docker selenium 自動化 - Python 調(diào)用容器實例跑自動化查天氣實例演示,docker selenium 自動化環(huán)境部署過程
[問題處理篇]
篇章一:Docker selenium 自動化 - 修改 /dev/shm 路徑大小實例演示,“session deleted because of page crash” 問題解決
篇章二:Docker selenium 自動化 - 執(zhí)行程序沒反應(yīng)、不執(zhí)行原因,強制處理之前失敗的進程,“… requests waiting for a slot to be free” 問題解決
第一章:Python 操作 docker
① python 運行 docker 容器實例
通過 pip install docker 安裝 docker 的 python 庫后即可調(diào)用本地的 docker 程序。
import dockerclient = docker.from_env()def create_docker1(docker_name):'''作用:運行一個(selenium/hub)容器實例,可選參數(shù)detach=True為后臺運行參數(shù):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)容器實例,可選參數(shù)detach=True為后臺運行參數(shù):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");執(zhí)行完可以查看容器信息,已經(jīng)創(chuàng)建成功并運行了。
可以正常打開 selenium 的 Grid 控制臺。
② python 啟用、停用容器實例
def stop_docker(container_name):'''作用:停用容器參數(shù):需要停用的容器名稱返回:無'''container = client.containers.get(container_name)container.stop()print("容器已停用")def start_docker(container_name):'''作用:啟用容器參數(shù):需要啟用的容器名稱返回:無'''container = client.containers.get(container_name)container.start()print("容器已啟用")start_docker("hub") start_docker("elastic_tharp")③ python 查詢、展示容器實例列表
def list_docker():'''作用:展示容器相關(guān)列表參數(shù):無返回:無'''# 顯示所有的容器對象results = client.containers.list()k = 0for i in results:k = k + 1;print("序號:" + str(k))print("容器短id:" + i.short_id)print("容器名:" + i.name)print("容器狀態(tài):" + i.status)print("容器端口:" + str(i.ports))print("")第二章:Python 調(diào)用 docker selenium 執(zhí)行自動化實例演示
① 源碼展示
容器實例重啟后,對應(yīng)的端口信息會有相應(yīng)的改變,所以測試的地址跟最開始創(chuàng)建時有所差異。
# -*- 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:# 登錄中國氣象網(wǎng)查看北京天氣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空氣質(zhì)量:%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()② 運行效果
抓取的天氣信息如下:
同時可以看到保存的截圖。
喜歡的點個贊?吧!
總結(jié)
以上是生活随笔為你收集整理的Docker selenium自动化 - 使用python操作docker,python运行、启用、停用和查询容器实例演示的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Docker selenium自动化 -
- 下一篇: Python 【大风号】短视频的自动上传