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

Selenium报错求助:module 'driver' has no attribute 'find_element'

解决Selenium爬取Django登录页的AttributeError问题

错误根源

你代码里的核心问题是初始化WebDriverWait的时机和对象错误:

  1. 导入了无关的driver模块,这不是Selenium的浏览器驱动实例
  2. 在创建Chrome浏览器实例driver = webdriver.Chrome()之前,就用错误的driver模块初始化了wait对象,导致后续调用时找不到find_element方法

修正后的代码

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait

# 先创建浏览器驱动实例
driver = webdriver.Chrome()
# 再用正确的驱动实例初始化等待对象
wait = WebDriverWait(driver, 10)

driver.get("http://localhost:8000")  # 补充http协议,避免浏览器识别错误
driver.maximize_window()

git_login = wait.until(EC.element_to_be_clickable((By.LINK_TEXT, 'Sign in')))
# 如需执行点击操作可添加:git_login.click()

driver.close()

额外注意事项

  • 访问地址必须包含协议(如http://),否则浏览器无法正确识别目标页面
  • 如果Sign in文本存在大小写、空格差异导致LINK_TEXT匹配失败,可改用By.PARTIAL_LINK_TEXT或XPath定位,例如:
    # 用XPath定位文本包含Sign in的链接
    git_login = wait.until(EC.element_to_be_clickable((By.XPATH, "//a[contains(text(), 'Sign in')]")))
    
  • 确保Django开发服务器正在localhost:8000正常运行,且页面能通过浏览器手动访问

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 19:27:33