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

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

       

docker 运行 selenium 自动化发现根本不向下走了。

访问 Grid 控制台发现提示 3 requests waiting for a slot to be free.

原因是之前执行失败的进程没有正常释放才会出现阻塞的问题。

image.png

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

image.png

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

image.png

脚本改进方案:

通过 try [关键代码] finally [进程释放] 的方式可以避免调试过程中的进程不释放问题。

实例如下:

# -*- 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()

喜欢的点个赞❤吧!


目录
相关文章
|
1月前
|
存储 测试技术 数据安全/隐私保护
【Docker项目实战】使用Docker部署DailyTxT加密日记网络应用程序
【4月更文挑战第6天】使用Docker部署DailyTxT加密日记网络应用程序
48 1
|
1天前
|
存储 Java Android开发
app应用程序进程启动过程
app应用程序进程启动过程
8 1
|
5天前
|
监控 测试技术 持续交付
Python自动化测试代理程序可用性
总之,通过编写测试用例、自动化测试和设置监控系统,您可以确保Python自动化测试代理程序的可用性,并及时发现和解决问题。这有助于提供更可靠和高性能的代理服务。
11 4
|
7天前
|
机器学习/深度学习 运维 持续交付
构建高效自动化运维体系:Ansible与Docker的完美结合构建高效机器学习模型的五大技巧
【4月更文挑战第30天】 在当今快速发展的云计算和微服务架构时代,自动化运维已成为维持系统稳定性和提高效率的关键。本文将探讨如何通过结合Ansible和Docker技术构建一个高效的自动化运维体系。文章不仅介绍了Ansible与Docker的基本原理和优势,还详细阐述了如何整合这两种技术以简化部署流程、加强版本控制,并提高整体运维效率。通过案例分析,我们将展示这一组合在实际环境中的应用效果,以及它如何帮助企业实现持续集成和持续部署(CI/CD)的目标。 【4月更文挑战第30天】 在数据驱动的时代,构建一个高效的机器学习模型是获取洞察力和预测未来趋势的关键步骤。本文将分享五种实用的技巧,帮助数
|
7天前
|
弹性计算 Shell 数据安全/隐私保护
自动化构建和部署Docker容器
【4月更文挑战第30天】
11 0
|
8天前
|
运维 安全 数据安全/隐私保护
构建高效自动化运维体系:Ansible与Docker的协同实践
【4月更文挑战第29天】 在当今IT基础设施快速演变的背景下,自动化成为维护系统稳定性和提升运维效率的关键。本文将深入探讨如何利用Ansible和Docker技术搭建一个高效的自动化运维体系。通过剖析Ansible的配置管理功能与Docker容器化的优势,我们展示了一种能够实现快速部署、轻松管理和无缝扩展的自动化解决方案。文章还将分享一系列优化策略,以期帮助读者构建出既灵活又强大的自动化工具链。
|
9天前
|
运维 Kubernetes 负载均衡
构建高效自动化运维体系:基于Docker和Kubernetes的实践指南
【4月更文挑战第28天】随着云计算和微服务架构的普及,自动化运维已成为提升系统稳定性、效率及快速响应市场变化的关键。本文将探讨如何利用容器化技术Docker和容器编排工具Kubernetes来构建一个高效、可扩展的自动化运维体系。我们将分析该技术栈的优势,并通过一系列实践案例,展示如何优化现有的运维流程,实现资源的最大化利用和风险的有效控制。
|
11天前
|
运维 安全 Docker
构建高效自动化运维体系:Ansible与Docker的协同策略
【4月更文挑战第26天】 在当今IT基础设施管理领域,自动化已成为提升效率、确保一致性及减少人为错误的必备工具。本文将探讨如何整合Ansible和Docker技术,以实现高效的自动化运维流程。通过分析Ansible的配置管理特性和Docker容器化的优势,我们将展示一种创新的协同策略,旨在优化部署速度、提高系统稳定性,并简化复杂环境的管理。本研究不拘泥于传统摘要的形式,而是提供一种实践导向的方法论,帮助运维专家突破现有运维模式的局限,构建更为灵活和可持续的自动化框架。
|
12天前
|
jenkins 持续交付 开发工具
Jenkins 快速入门 (含Jenkins + Docker + Git 简单的自动化实操)(下)
Jenkins 快速入门 (含Jenkins + Docker + Git 简单的自动化实操)
|
12天前
|
jenkins Java 持续交付
Jenkins 快速入门 (含Jenkins + Docker + Git 简单的自动化实操)(上)
Jenkins 快速入门 (含Jenkins + Docker + Git 简单的自动化实操)