如何使用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
相关产品推荐
相关产品推荐

