python selenium 通过端口关闭进程

def selenium_login():
    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    options = Options()
    # options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")
    driver = webdriver.Chrome(options=options)
    print('caps:', driver.caps)
    debugger_address = driver.caps['goog:chromeOptions']['debuggerAddress']
    print('debugger_address:', debugger_address)
    debug_host, debug_port = driver.caps['goog:chromeOptions']['debuggerAddress'].split(':')
    with open('debug_port.txt', 'w', encoding='utf-8') as f:
        f.write(debug_port + '\n')
def kill_port():
    import os
    import subprocess
    """根据端口号杀死对应的进程"""
    if os.path.exists('debug_port.txt'):
        with open('debug_port.txt', 'r', encoding='utf-8') as f:
            port = f.read().strip()
    else:
        return
    # 根据端口号查询pid
    find_port = 'netstat -aon | findstr %s' % port
    process = subprocess.Popen(find_port, stdout=subprocess.PIPE, stderr=subprocess.PIPE, encoding="gbk", shell=True)
    text = process.stdout.read()
    # 提取pid
    text = [i.split(' ') for i in text.split('\n') if i]
    pids = []
    for i in text:
        pid = [u for u in i if u]
        if str(port) in pid[1]:
            pids.append(pid[-1])
    pids = list(set(pids))
    # 杀死占用端口的pid
    for pid in pids:
        find_kill = 'taskkill -f -pid %s' % pid
        subprocess.Popen(find_kill)
def kill_port():
    import os
    import subprocess
    import psutil
    """根据端口号杀死对应的进程"""
    if os.path.exists('debug_port.txt'):
        with open('debug_port.txt', 'r', encoding='utf-8') as f:
            port = f.read().strip()
    else:
        return
    port_pid = {}
    for i in psutil.net_connections():
        pid = i.pid
        status = i.status
        port = i.laddr.port
        port_pid[port] = pid
    # 关闭占用端口的pid
    if port_pid.get(int(port)):
        find_kill = 'taskkill -f -pid %s' % port_pid[int(port)]
        subprocess.Popen(find_kill)
def kill_progress_pid(soft_name=None):
    import psutil
    # 根据程序名获取进程ID,并关闭进程,soft_name='chrome.exe'
    for p in psutil.process_iter():
        try:
            if p.name().lower() != soft_name.lower():
                continue
            process = psutil.Process(p.pid)
            process.kill()
        except:
            pass
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值