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

Selenium/Python调用send_keys报错:'WebDriver'对象无此属性

问题解决:AttributeError: 'WebDriver' object has no attribute 'send_keys'

错误原因

send_keys() 是**WebElement(页面元素)**的专属方法,不能直接在WebDriver对象(即你的driver)上调用。你错误地在driver上执行该方法,导致了属性错误。另外,你之前的代码里mailfinder = driver.find_element(...).click()会把click()的返回值(None)赋值给变量,这没有实际意义,因为click()不会返回元素对象。

修正代码

将你代码中的「Email Fill In」部分替换为以下内容:

# Email Fill In
driver.find_element(By.XPATH, '//*[@id="loginRegisterTabs"]/ul/li[1]').click()

# 先定位到邮箱输入框元素
email_input = driver.find_element(By.XPATH, '//*[@id="loginForm"]/div[2]/div/input')
# 在元素上调用send_keys填充内容
email_input.send_keys('mail@outlook.com')

额外优化建议

  1. 合并Options配置:你代码中重复创建了Options()对象,导致第一个start-maximized参数被覆盖,应合并所有配置项:
options = Options()
options.add_argument("start-maximized")
options.add_experimental_option("detach", True)
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('useAutomationExtension', False)
  1. 使用显式等待替代隐式等待:显式等待能确保元素加载完成后再执行操作,比隐式等待更可靠:
# 替换原有的driver.implicitly_wait(10),改用显式等待定位元素
email_input = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.XPATH, '//*[@id="loginForm"]/div[2]/div/input'))
)
email_input.send_keys('mail@outlook.com')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 12:50:10