前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker selenium自动化 - 执行程序没反应、不执行原因,强制处理之前失败的进程,“... requests waiting for a slot to be free“问题解决

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

作者头像
小蓝枣
发布2021-12-01 13:18:41
8350
发布2021-12-01 13:18:41
举报
文章被收录于专栏:CSDN博客专家-小蓝枣的博客

docker 运行 selenium 自动化发现根本不向下走了。 访问 Grid 控制台发现提示 3 requests waiting for a slot to be free. 原因是之前执行失败的进程没有正常释放才会出现阻塞的问题。

在这里插入图片描述
在这里插入图片描述

查看详细信息可以看到超时时间为 1800 秒,即问题进程卡 30 分钟才会自动释放掉。

在这里插入图片描述
在这里插入图片描述

通过 cocker restart + 实例名 来强制释放失败的进程。

在这里插入图片描述
在这里插入图片描述

脚本改进方案: 通过 try [关键代码] finally [进程释放] 的方式可以避免调试过程中的进程不释放问题。 实例如下:

代码语言:javascript
复制
# -*- coding: UTF8 -*-
# 2021.11.16
# 小蓝枣
# docker selenium 自动化

from selenium import webdriver
from time import sleep

driver = webdriver.Remote(
    command_executor='http://127.0.0.1:55006/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()

喜欢的点个赞❤吧!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/11/18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档