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

使用Selenium和Python提取div文本无输出该如何解决?

问题原因
  • 类名参数带了多余的尾部空格:调用find_elements_by_class_name时传入的类名末尾多了空格,Selenium会将空格判定为类名的一部分,无法和实际页面的类名匹配,导致获取不到元素。
  • 缺少页面加载等待逻辑:网页元素是动态渲染的,调用driver.get后直接执行元素定位逻辑时,目标元素还未加载完成,返回的元素列表为空,遍历无输出。
  • 已废弃的定位语法:当前使用的find_elements_by_class_name是Selenium 3版本的旧语法,Selenium 4.0及以上版本已经不再支持该写法,会出现定位失效问题。
修正后代码
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

url = 'https://www.bet365.com/#/AVR/B146/R^1'
driver = webdriver.Chrome()
driver.get(url)

# 显式等待最多10秒,直到目标元素加载完成
wait = WebDriverWait(driver, 10)

# 提取Registre-se文本
join_ele = wait.until(EC.visibility_of_element_located((By.CLASS_NAME, 'hm-MainHeaderRHSLoggedOutNarrow_Join')))
print(join_ele.text)

# 提取Login文本
login_ele = wait.until(EC.visibility_of_element_located((By.CLASS_NAME, 'hm-MainHeaderRHSLoggedOutNarrow_Login')))
print(login_ele.text)

driver.quit()
补充说明

如果还是出现定位失败的情况,可以替换为CSS选择器定位,兼容性更强:

join_ele = wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, 'div.hm-MainHeaderRHSLoggedOutNarrow_Join')))
login_ele = wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, 'div.hm-MainHeaderRHSLoggedOutNarrow_Login')))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 00:57:00