You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何检查Selenium Remote Driver是否未退出?(Python)

检查Remote WebDriver是否已退出的几种方案

因为Remote WebDriver没有本地驱动的service属性,你可以通过以下几种方式判断它是否已退出:

方法一:执行轻量WebDriver命令并捕获异常

当Remote Driver的会话终止后,任何尝试与驱动交互的命令都会抛出WebDriverException或其子类(比如NoSuchSessionException)。你可以执行一个无副作用的轻量命令来验证:

from selenium.common.exceptions import WebDriverException, NoSuchSessionException

def is_remote_driver_alive(driver):
    try:
        # 获取当前窗口句柄,无业务副作用的轻量操作
        driver.current_window_handle
        return True
    except (NoSuchSessionException, WebDriverException):
        return False

# 使用示例
if not is_remote_driver_alive(driver):
    break

这种方法无需额外依赖,完全基于Selenium自身API,兼容性强。

方法二:直接查询Remote Server的会话状态

如果你知晓Remote Server的地址,可以通过其REST接口检查会话是否存在,需要用到requests库:

import requests

def is_remote_driver_alive(driver, remote_server_url):
    session_id = driver.session_id
    check_url = f"{remote_server_url.rstrip('/')}/wd/hub/session/{session_id}"
    try:
        response = requests.get(check_url)
        # 200状态码表示会话存在,404表示会话已销毁
        return response.status_code == 200
    except requests.exceptions.RequestException:
        # 无法连接远程服务器,说明驱动肯定不可用
        return False

# 使用示例(假设远程服务器地址为http://127.0.0.1:4444)
if not is_remote_driver_alive(driver, "http://127.0.0.1:4444"):
    break

这种方法能明确区分“会话已终止”和“远程服务器不可达”两种情况,但需要额外安装requests库,且需提前知晓远程服务器地址。


内容的提问来源于stack exchange,提问作者user11419808

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 07:55:19