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

如何使用Selenium WebDriver在弹出窗口内进行滚动?

弹窗内滚动的解决方法

弹窗示例

你当前用driver.execute_script("window.scrollTo(0, 2080)")会滚动整个页面,是因为这个方法操作的是全局window对象,而弹窗的滚动区域是独立的DOM元素,需要针对性操作:

方法一:定位滚动容器后执行脚本

先找到弹窗里的可滚动元素(通常是带有overflow: auto或overflow: scroll样式的容器),再对它执行滚动:

# 以class定位为例,实际要替换成你弹窗的元素定位方式
scrollable_container = driver.find_element(By.CLASS_NAME, "modal-scrollable")

# 方式1:设置scrollTop到指定位置
driver.execute_script("arguments[0].scrollTop = 2080;", scrollable_container)

# 方式2:用scrollTo方法
driver.execute_script("arguments[0].scrollTo(0, 2080);", scrollable_container)

方法二:用ActionChains模拟键盘滚动

如果不确定滚动容器,也可以先定位弹窗内的任意元素,然后模拟PageDown/PageUp滚动:

from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys

# 定位弹窗内的元素,确保焦点在弹窗内
modal_element = driver.find_element(By.XPATH, "//div[@class='modal']")

ActionChains(driver)\
    .move_to_element(modal_element)\
    .send_keys(Keys.PAGE_DOWN)\
    .perform()

内容的提问来源于stack exchange,提问作者Павел

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 01:39:39