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

如何使用Puppeteer模拟移动端手指按压滚动操作?

如何用Puppeteer在移动设备环境模拟真人手指滚动操作?

我需要在Puppeteer配置的移动设备环境中,模拟真人手指的上下滚动操作。一开始我以为浏览器对应的是wheel事件,于是写了下面的代码:

const puppeteer = require('puppeteer-extra')
var  {KnownDevices} = require('puppeteer');
const iPhone = KnownDevices['iPhone 15 Pro'];

async function r()
{
    var browserArray = []
    let browser = await puppeteer.launch(
        {   headless:false,
            defaultViewport: {
              width: 375,
              height: 667,
              isMobile: true,
            }/**/
    });

    const page = await browser.newPage();
    await page.emulate(iPhone);
    async function wheeler()
    {
        //query 
        await page.goto('https://www.google.com/search?q=facebook', {timeout: 0, waitUntil: 'domcontentloaded'});

        await page.mouse.wheel({deltaY: -30});

    }
    wheeler();
}

r();

但这段代码完全没效果。我可以用Puppeteer调用ScrollBy方法,但我更想模拟真人的手指按压滚动事件。

比如在桌面浏览器中监听鼠标滚轮事件的代码是这样的:

document.body.addEventListener("wheel", (e) => {
  console.log("deltaY: " + e.deltaY)
});

那在移动端浏览器里,该怎么实现类似的手指按压上下滚动操作?

更新:我发现了touchscreen API,尝试用下面的代码模拟手指按压滚动,但还是无效:

await page.touchscreen.touchStart(0, 0);
await page.touchscreen.touchMove(15, 15);
await page.touchscreen.touchMove(30.5, 30);
await page.touchscreen.touchEnd();

内容的提问来源于stack exchange,提问作者C.Unbay

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 06:20:02