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

如何捕获第三方网站滚动事件?移动端与桌面端可行方案咨询

捕获第三方网站滚动事件的可行方案(移动端+桌面端)

方案1:Chrome DevTools 手动注入监听脚本(快速验证)

适合单次测试,无需额外工具,桌面和安卓移动端通用:

桌面端操作步骤:

  1. 打开Chrome并访问目标网站(如Reddit),按F12打开DevTools
  2. 切换到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();
    }
    
  3. 测试结束后,在控制台输入exportLogs()即可下载JSON格式的滚动数据

安卓移动端操作步骤:

  1. 开启手机USB调试,用USB连接到电脑
  2. 电脑端Chrome打开chrome://inspect/#devices,找到连接的手机和对应Reddit页面,点击inspect打开远程DevTools
  3. 重复桌面端的脚本注入步骤,即可捕获移动端滚动数据

方案2:Tampermonkey 扩展自动注入脚本(重复测试友好)

适合多次测试场景,不用每次手动敲脚本,桌面和安卓Chrome都支持:

  1. 安装Tampermonkey扩展(桌面Chrome直接在应用商店搜,安卓Chrome需在Google Play安装)
  2. 创建新用户脚本,设置匹配规则为目标网站(如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. 保存脚本后,访问目标网站时会自动加载,测试结束点击页面右下角的导出按钮即可获取数据

方案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):

  1. 安装Appium和对应设备的驱动(安卓用UiAutomator2,iOS用XCUITest)
  2. 编写类似的自动化脚本,连接设备后控制Chrome浏览器,注入相同的滚动监听代码,即可捕获移动端滚动数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 02:30:42