如何捕获第三方网站滚动事件?移动端与桌面端可行方案咨询
捕获第三方网站滚动事件的可行方案(移动端+桌面端)
方案1:Chrome DevTools 手动注入监听脚本(快速验证)
适合单次测试,无需额外工具,桌面和安卓移动端通用:
桌面端操作步骤:
- 打开Chrome并访问目标网站(如Reddit),按
F12打开DevTools - 切换到Console标签,粘贴以下脚本回车执行:
// 初始化滚动日志数组 const scrollLogs = []; let lastScrollTop = window.scrollY; // 监听滚动事件,记录时间戳、位置、方向 window.addEventListener('scroll', () => { const currentScrollTop = window.scrollY; const direction = currentScrollTop > lastScrollTop ? 'down' : 'up'; scrollLogs.push({ timestamp: Date.now(), scrollPosition: currentScrollTop, direction: direction, device: 'desktop' }); lastScrollTop = currentScrollTop; }); // 导出日志时,在控制台输入:console.table(scrollLogs) 或执行下面的下载逻辑 function exportLogs() { const dataStr = JSON.stringify(scrollLogs, null, 2); const dataBlob = new Blob([dataStr], {type: 'application/json'}); const url = URL.createObjectURL(dataBlob); const a = document.createElement('a'); a.href = url; a.download = `scroll-logs-${Date.now()}.json`; a.click(); } - 测试结束后,在控制台输入
exportLogs()即可下载JSON格式的滚动数据
安卓移动端操作步骤:
- 开启手机USB调试,用USB连接到电脑
- 电脑端Chrome打开
chrome://inspect/#devices,找到连接的手机和对应Reddit页面,点击inspect打开远程DevTools - 重复桌面端的脚本注入步骤,即可捕获移动端滚动数据
方案2:Tampermonkey 扩展自动注入脚本(重复测试友好)
适合多次测试场景,不用每次手动敲脚本,桌面和安卓Chrome都支持:
- 安装Tampermonkey扩展(桌面Chrome直接在应用商店搜,安卓Chrome需在Google Play安装)
- 创建新用户脚本,设置匹配规则为目标网站(如
https://www.reddit.com/*),粘贴以下代码:// ==UserScript== // @name Scroll Event Tracker // @namespace http://tampermonkey.net/ // @version 0.1 // @description Track scroll behavior on target sites // @match https://www.reddit.com/* // @grant none // ==/UserScript== (function() { 'use strict'; const scrollLogs = []; let lastScrollTop = window.scrollY; // 自动监听滚动 window.addEventListener('scroll', () => { const currentScrollTop = window.scrollY; const direction = currentScrollTop > lastScrollTop ? 'down' : 'up'; scrollLogs.push({ timestamp: Date.now(), scrollPosition: currentScrollTop, direction: direction, device: /Android|iPhone|iPad/i.test(navigator.userAgent) ? 'mobile' : 'desktop' }); lastScrollTop = currentScrollTop; }); // 添加页面导出按钮 const exportBtn = document.createElement('button'); exportBtn.textContent = '导出滚动日志'; exportBtn.style.cssText = 'position:fixed;bottom:20px;right:20px;z-index:9999;padding:8px 12px;background:#0079d3;color:white;border:none;border-radius:4px;cursor:pointer;'; exportBtn.addEventListener('click', () => { const dataStr = JSON.stringify(scrollLogs, null, 2); const dataBlob = new Blob([dataStr], {type: 'application/json'}); const url = URL.createObjectURL(dataBlob); const a = document.createElement('a'); a.href = url; a.download = `scroll-logs-${Date.now()}.json`; a.click(); }); document.body.appendChild(exportBtn); })(); - 保存脚本后,访问目标网站时会自动加载,测试结束点击页面右下角的导出按钮即可获取数据
方案3:Selenium/Appium 自动化捕获(批量/程序化测试)
适合需要自动控制设备、批量运行测试的场景:
桌面端(Python + Selenium):
from selenium import webdriver from selenium.webdriver.chrome.options import Options import json import time # 配置ChromeDriver options = Options() options.add_argument("start-maximized") driver = webdriver.Chrome(options=options) driver.get("https://www.reddit.com/") # 注入滚动监听脚本 driver.execute_script(""" window.scrollLogs = []; let lastScrollTop = window.scrollY; window.addEventListener('scroll', () => { const currentScrollTop = window.scrollY; const direction = currentScrollTop > lastScrollTop ? 'down' : 'up'; window.scrollLogs.push({ timestamp: Date.now(), scrollPosition: currentScrollTop, direction: direction, device: 'desktop' }); lastScrollTop = currentScrollTop; }); """) # 等待测试时长(比如5分钟=300秒) time.sleep(300) # 导出日志到本地文件 logs = driver.execute_script("return window.scrollLogs;") with open("desktop-scroll-data.json", "w", encoding="utf-8") as f: json.dump(logs, f, indent=2) driver.quit()
移动端(Appium):
- 安装Appium和对应设备的驱动(安卓用UiAutomator2,iOS用XCUITest)
- 编写类似的自动化脚本,连接设备后控制Chrome浏览器,注入相同的滚动监听代码,即可捕获移动端滚动数据
内容的提问来源于stack exchange,提问作者AlexW00
相关产品推荐
相关产品推荐

