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()
问题排查与解决
核心原因
- ChromeDriver与Chrome版本不匹配:这是触发GetHandleVerifier报错的最常见原因,两者版本必须完全对应。
- 代码逻辑问题:
- 搜索框按下回车后页面跳转,原页面的
btnK元素会失效,后续定位必然失败,进而引发驱动层面的报错。 - 使用了Selenium旧版元素定位API(
find_element_by_name),这类API已被废弃,兼容性较差。
- 搜索框按下回车后页面跳转,原页面的
- 驱动管理方式过时:直接通过
executable_path传驱动路径的方式在Selenium 4+中已不推荐,容易引发兼容性问题。
解决步骤
- 匹配Chrome与ChromeDriver版本:查看Chrome浏览器版本(设置→关于Chrome),下载对应版本的ChromeDriver,替换现有驱动文件。
- 修改代码优化逻辑与API:
- 使用新版定位API,导入
By类。 - 优化搜索逻辑,无需额外点击搜索按钮,搜索框输入内容后回车即可完成搜索;若需点击按钮,需等待元素加载完成。
- 使用
Service类管理驱动路径。
- 使用新版定位API,导入
修改后的代码示例
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
相关产品推荐
相关产品推荐

