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

ChromeDriver与Selenium Python报错求助:无法确定加载状态

问题描述

我在用Selenium开发Python项目时遇到以下错误:

selenium.common.exceptions.WebDriverException: Message: unknown error: cannot determine loading status
from unknown error: unexpected command response
(Session info: chrome=103.0.5060.114)

我的Chrome版本是103,ChromeDriver版本也匹配为103,相关代码如下:

from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.chrome.service import Service

player = input("Which player: ").lower()
PATH = "/Users/makfadel/Desktop/Desktop-items/chromedriver 2"
#driver = webdriver.Chrome(PATH)

s = Service(PATH)
browser = webdriver.Chrome(service=s)
browser.get("https://www.basketball-reference.com/leagues/NBA_2022_per_game.html")
search = browser.find_element(By.XPATH, "//*[@id='header']/div[3]/form/div/div/input[2]")
search.send_keys(player)
search.send_keys(Keys.RETURN)

try:
    element = WebDriverWait(browser, 10).until(
        EC.presence_of_element_located((By.XPATH, "//*[@id='players']/div[1]/div[1]/strong/a")))
    element.click()
    name = WebDriverWait(browser, 10).until(
        EC.presence_of_element_located((By.XPATH, "//*[@id='meta']/div[2]/h1/span")))
    print()
    print(name.text)
    print()
    szn = WebDriverWait(browser, 10).until(
        EC.presence_of_element_located((By.XPATH, "//*[@id='info']/div[4]/div[1]/div/p[1]/strong"))
    )
    games = WebDriverWait(browser, 10).until(
        EC.presence_of_element_located((By.XPATH, "//*[@id='info']/div[4]/div[2]/div[1]/p[1]"))
    )
    ppgame = WebDriverWait(browser, 10).until(
        EC.presence_of_element_located((By.XPATH, "//*[@id='info']/div[4]/div[2]/div[2]/p[1]"))
    )
    rebounds = WebDriverWait(browser, 10).until(
        EC.presence_of_element_located((By.XPATH, "//*[@id='info']/div[4]/div[2]/div[3]/p[1]"))
    )
    assists = WebDriverWait(browser, 10).until(
        EC.presence_of_element_located((By.XPATH, "//*[@id='info']/div[4]/div[2]/div[4]/p[1]"))
    )
    fg = WebDriverWait(browser, 10).until(
        EC.presence_of_element_located((By.XPATH, "//*[@id='info']/div[4]/div[3]/div[1]/p[1]"))
    )
    fg3 = WebDriverWait(browser, 10).until(
        EC.presence_of_element_located((By.XPATH, "//*[@id='info']/div[4]/div[3]/div[2]/p[1]"))
    )
    ft = WebDriverWait(browser, 10).until(
        EC.presence_of_element_located((By.XPATH, "//*[@id='info']/div[4]/div[3]/div[3]/p[1]"))
    )
    print(f"Season: {szn}")
    print(f"Games played: {games.text}")
    print(f"Points per game: {ppgame.text}")
    print(f"Rebounds per game: {rebounds.text}")
    print(f"Assists per game: {assists.text}")
    print(f"Field goal percentage: {fg.text}%")
    print(f"Field goal from 3 percentage: {fg3.text}%")
    print(f"Free throw percentage: {ft.text}%")
except Exception:
    print(f"No player named {player}")
finally:
    browser.quit()
解决方案

这个错误多是ChromeDriver与Chrome的会话通信异常导致的,可尝试以下修复方式:

  • 添加ChromeOptions参数
    给浏览器实例禁用沙箱、GPU加速等可能引发冲突的选项:

    from selenium.webdriver.chrome.options import Options
    
    options = Options()
    options.add_argument("--no-sandbox")
    options.add_argument("--disable-dev-shm-usage")
    options.add_argument("--disable-gpu")
    options.add_argument("--remote-debugging-port=9222")
    
    # 初始化浏览器时传入options
    browser = webdriver.Chrome(service=s, options=options)
    
  • 检查ChromeDriver权限
    确保ChromeDriver文件有可执行权限,在终端运行:

    chmod +x "/Users/makfadel/Desktop/Desktop-items/chromedriver 2"
    
  • 优化页面等待逻辑
    点击搜索结果后,页面跳转需更稳定的等待,可将presence_of_element_located替换为element_to_be_clickable,同时增加页面加载完成的等待:

    # 在browser.get之后添加
    browser.implicitly_wait(5)
    # 或显式等待页面加载完成
    WebDriverWait(browser, 10).until(lambda d: d.execute_script('return document.readyState') == 'complete')
    
  • 重新下载ChromeDriver
    即使版本号匹配,也可能存在文件损坏情况,重新下载对应103.0.5060.114版本的ChromeDriver替换现有文件。

  • 修改ChromeDriver路径
    当前路径包含空格(chromedriver 2)可能导致识别问题,建议重命名为chromedriver并修改PATH:

    PATH = "/Users/makfadel/Desktop/Desktop-items/chromedriver"
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 06:24:31