zoukankan      html  css  js  c++  java
  • 解决selenium启用多个webdriver占用内存和端口的问题

    最近在改进打卡脚本,突然有一天遇到了问题。脚本调用了过多的webdriver程序,导致内存占用率很高,导致我无法正常连接服务器,也无法执行脚本。

    如图:

    当时的解决方法:

    查看进程,一个个用kill命令杀死

    但是这样效率很低,而且每天我起床都要执行一次操作,否则第二天就又无法打卡

    网上参考的命令是加上以下语句:

    driver.quit()

    如果是正常执行脚本的话这句话足够了,但是将脚本加入crontab定时自动设置多次执行,会导致出现内存占用没关闭webdriver的问题

    解决方法:python脚本在开头加上自动kill进程的命令

    import os
    import re
    import signal
    
    
    # 要杀死程序名称,最好全名
    program_name = "webdriver"
    # 终端执行的命令
    order_str = "ps -aux|grep %s" % program_name
    # 执行
    strs_obj = os.popen(order_str)
    t_strs = strs_obj.read()
    # 通过正则获取pid
    pid_list = re.findall(r"(d+).+webdriver --port=d+", t_strs, re.I)
    print(pid_list)
    for j in pid_list:
        print(j)
        # 杀死进程
        os.kill(int(j), signal.SIGKILL)
  • 相关阅读:
    数据压缩和归档
    数据持久化
    文件和目录的使用
    数据及数据处理
    data types
    string services
    logging模块
    指导
    比较两个NSDate类型的参数相差的时间差
    推送 iOS 10
  • 原文地址:https://www.cnblogs.com/echoDetected/p/14225033.html
Copyright © 2011-2022 走看看