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

Chrome中Python Selenium的send_keys方法失效问题求助

解决Selenium Chrome网页滚动失效的问题

嘿,刚上手Python和Selenium遇到这种问题太正常了,我帮你拆解下可能的原因和解决办法~

首先看你遇到的报错,大概率是下面几个问题中的一个:

可能的问题点

  • 旧版Selenium语法弃用:你用的find_element_by_tag_name是Selenium 3.x的写法,在4.x版本里已经被移除了,必须改用新的定位方式
  • 缺少必要的导入:如果没导入Keys或者sleep相关模块,也会触发报错
  • 元素焦点问题:有些页面的body元素可能没获取到焦点,导致按键事件没生效

修正后的解决方案

方案1:适配新版Selenium的按键滚动

先确保你导入了所有必要的模块,然后替换掉旧的元素定位方法:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from time import sleep

# 初始化浏览器(这里假设你已经正确配置了ChromeDriver)
browser = webdriver.Chrome()
browser.get("你的目标网页URL")

# 用新版语法定位body元素
try:
    body_elem = browser.find_element(By.TAG_NAME, 'body')
    for _ in range(3):
        # 滚动到底部
        body_elem.send_keys(Keys.END)
        sleep(2)
        # 滚动到顶部
        body_elem.send_keys(Keys.HOME)
        sleep(2)
except Exception as e:
    print(f"出错啦:{e}")
finally:
    browser.quit()

方案2:用JavaScript滚动(更稳定)

有些页面的滚动逻辑不是绑定在body上的,这时候用Selenium执行JS代码会更可靠,推荐这种方式:

from selenium import webdriver
from time import sleep

browser = webdriver.Chrome()
browser.get("你的目标网页URL")

try:
    for _ in range(3):
        # 滚动到页面底部
        browser.execute_script("window.scrollTo(0, document.body.scrollHeight);")
        sleep(2)
        # 滚动到页面顶部
        browser.execute_script("window.scrollTo(0, 0);")
        sleep(2)
except Exception as e:
    print(f"出错啦:{e}")
finally:
    browser.quit()

小提示

  • 如果你还在使用旧版Selenium,建议升级到4.x版本,官方已经停止维护旧版本了
  • 执行JS滚动的方式几乎适用于所有网页,不会受元素焦点的影响,是更通用的滚动方案

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:11:45