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

Python-Selenium代码运行出现GetHandleVerifier报错,请求排查问题

Python-Selenium代码运行报错(GetHandleVerifier相关)

报错堆栈信息

GetHandleVerifier [0x00CBDCE3+50899]
        (No symbol) [0x00C4E111]
        (No symbol) [0x00B55588]
        (No symbol) [0x00B7570C]
        (No symbol) [0x00B71471]
        (No symbol) [0x00B6F479]
        (No symbol) [0x00BA1FFE]
        (No symbol) [0x00BA1CEC]
        (No symbol) [0x00B9B6F6]
        (No symbol) [0x00B77708]
        (No symbol) [0x00B7886D]
        GetHandleVerifier [0x00F23EAE+2566302]
        GetHandleVerifier [0x00F592B1+2784417]
        GetHandleVerifier [0x00F5327C+2759788]
        GetHandleVerifier [0x00D55740+672048]
        (No symbol) [0x00C58872]
        (No symbol) [0x00C541C8]
        (No symbol) [0x00C542AB]
        (No symbol) [0x00C471B7]
        BaseThreadInitThunk [0x74E200F9+25]
        RtlGetAppContainerNamedObjectPath [0x76FA7BBE+286]
        RtlGetAppContainerNamedObjectPath [0x76FA7B8E+238]

原代码

##Importing Libraries:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome(executable_path=r"C:\Users\Kanishk Jain\Downloads\chromedriver_win32\chromedriver.exe")

driver.maximize_window()
driver.get("https://google.com")

driver.find_element_by_name("q").send_keys(Keys.ENTER)
driver.find_element_by_name("btnK").send_keys(Keys.ENTER)
driver.close()

问题排查与解决

核心原因

  1. ChromeDriver与Chrome版本不匹配:这是触发GetHandleVerifier报错的最常见原因,两者版本必须完全对应。
  2. 代码逻辑问题:
    • 搜索框按下回车后页面跳转,原页面的btnK元素会失效,后续定位必然失败,进而引发驱动层面的报错。
    • 使用了Selenium旧版元素定位API(find_element_by_name),这类API已被废弃,兼容性较差。
  3. 驱动管理方式过时:直接通过executable_path传驱动路径的方式在Selenium 4+中已不推荐,容易引发兼容性问题。

解决步骤

  1. 匹配Chrome与ChromeDriver版本:查看Chrome浏览器版本(设置→关于Chrome),下载对应版本的ChromeDriver,替换现有驱动文件。
  2. 修改代码优化逻辑与API:
    • 使用新版定位API,导入By类。
    • 优化搜索逻辑,无需额外点击搜索按钮,搜索框输入内容后回车即可完成搜索;若需点击按钮,需等待元素加载完成。
    • 使用Service类管理驱动路径。

修改后的代码示例

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service

# 初始化驱动
service = Service(r"C:\Users\Kanishk Jain\Downloads\chromedriver_win32\chromedriver.exe")
driver = webdriver.Chrome(service=service)

driver.maximize_window()
driver.get("https://google.com")

# 定位搜索框,输入内容后回车(直接完成搜索)
search_box = driver.find_element(By.NAME, "q")
search_box.send_keys("你的搜索内容")  # 建议添加搜索内容,否则空回车无意义
search_box.send_keys(Keys.ENTER)

# 若需点击搜索按钮,需等待元素加载(示例)
# from selenium.webdriver.support.ui import WebDriverWait
# from selenium.webdriver.support import expected_conditions as EC
# WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.NAME, "btnK"))).click()

driver.quit()  # 用quit()代替close(),确保驱动进程完全终止

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 17:08:19