Selenium实现Instagram登录报错:'WebElement'对象无'send_Keys'属性
Selenium Instagram登录报错解决方法
当前报错的直接解决方法
你触发AttributeError: 'WebElement' object has no attribute 'send_Keys'的核心原因是方法名大小写错误:Selenium元素输入方法为全小写的send_keys(),你写的send_Keys()中K大写属于拼写错误,将此处修改为全小写即可解决当前报错。
其余需要修正的代码问题
仅修改方法名后代码仍无法正常运行,还需要调整以下问题:
- 密码输入框定位值拼写错误:Instagram登录页密码输入框的name属性为
password,你代码中写的passwrod拼写错误,会触发找不到元素的报错 - 旧版元素定位方法已废弃:
find_element_by_xpath、find_element_by_name这类写法在Selenium 4.0+版本中已经被移除,需要替换为find_element(By.定位类型, 定位值)的标准写法,使用前需要先导入By模块 send_keys()无返回值,不需要赋值给username变量,该赋值操作无实际意义- 固定
time.sleep()等待稳定性差,建议替换为显式等待,确保元素加载完成后再执行操作
修正后的可运行代码示例
from selenium import webdriver import time 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 driver = webdriver.Chrome() driver.get("https://www.instagram.com/") # 处理cookie弹窗 WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "/html/body/div[4]/div/div/button[1]"))).click() # 输入账号密码 WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.NAME, "username"))).send_keys("你的实际账号") WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.NAME, "password"))).send_keys("你的实际密码") # 点击登录 WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="loginForm"]/div/div[3]/button/div'))).click()
内容的提问来源于stack exchange,提问作者logan9997
相关产品推荐
相关产品推荐

