如何使用 puppeteer 在移动调试模式下打开 Chromium?

pig*_*ane 5 chromium node.js puppeteer

我想用 puppeteer 启动 Chrome,在移动调试模式下,这意味着单击 devtools 中的“切换设备工具栏”按钮。

抱歉,我没有足够的声望上传图片。

我尝试了以下代码,但没有用:

const browser = await puppeteer.launch({
    devtools: true,
    ignoreHTTPSErrors: true,
    isMobile:true //I thought it would be fine to set isMobile: true, but not
  });
Run Code Online (Sandbox Code Playgroud)

所以我该怎么做?

Tho*_*orf 7

要完全模拟移动设备,您还必须指定其他值,例如width, height, deviceScaleFactorhasTouch也许还有用户代理,以使网站相信您的浏览器是移动设备。您可以手动设置它们(请参阅 Yevhen 的答案)或使用 puppeteer 通过提供的默认设备描述符之一puppeteer.devices并通过调用page.emulate.

代码示例

const puppeteer = require('puppeteer');
const iPhone = puppeteer.devices['iPhone 6'];

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.emulate(iPhone);
  await page.goto(url);
  // ...
})();
Run Code Online (Sandbox Code Playgroud)


Yev*_*kov 6

属性isMobile是对象的一部分defaultViewport,这意味着你应该将isMobile属性放在defaultViewport对象内部。

像这样:

defaultViewport: {
  width: 375,
  height: 667,
  isMobile: true,
}
Run Code Online (Sandbox Code Playgroud)

满的:

const browser = await puppeteer.launch({
  devtools: true,
  ignoreHTTPSErrors: true,
  defaultViewport: {
    width: 375,
    height: 667,
    isMobile: true,
  }
});
Run Code Online (Sandbox Code Playgroud)