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

使用Python2.7.10+Selenium登录报错AttributeError,求解决方法

修复Selenium中AttributeError: 'module' object has no attribute 'document'的问题

嘿,我看到你在Python 2.7.10里用Selenium实现登录时碰到了这个错误,问题根源在于你把浏览器端的JavaScript DOM操作逻辑直接套在了selenium模块上——selenium模块本身并没有document这个属性,这是浏览器环境里才有的对象,咱们得用Selenium正确的元素定位方式来改:

错误原因拆解

你写的selenium.document.getElementById("Username")是浏览器控制台里的JS写法,但在Selenium的Python API里,元素定位是通过你初始化的driver对象来完成的,而不是直接调用selenium模块。

修正后的完整代码

from selenium import webdriver

# 初始化Chrome浏览器驱动
driver = webdriver.Chrome("/Users/username/Downloads/chromedriver")
driver.get("http://website.com")

# 通过driver对象定位用户名和密码输入框
username = driver.find_element_by_id("Username")
password = driver.find_element_by_id("Password")

# 输入账号密码
username.send_keys("your_username")
password.send_keys("your_password")

# 通过driver定位登录按钮并点击
driver.find_element_by_name("Login").click()

关键修改点

  • 去掉了不必要的import selenium,因为我们只需要用selenium.webdriver里的对象
  • 把所有selenium.xxx的调用换成了driver.xxx——driver是你打开的浏览器实例,所有和页面交互的操作都要通过它来完成
  • 用Selenium提供的find_element_by_id替代了JS的getElementById,这是Python版Selenium定位元素的标准方式

另外提个小建议:如果你的Selenium版本支持,也可以用更清晰的By类来定位(适配Python 2.7的Selenium版本需要额外导入),比如:

from selenium.webdriver.common.by import By

username = driver.find_element(By.ID, "Username")

这样代码可读性会更高,不过上面的基础写法已经能解决你的问题啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:28:39