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

2023-11-21

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

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

我尝试了以下代码,但它不起作用:

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

所以我该怎么做?


要完全模拟移动设备,您还必须指定其他值,例如width, height, deviceScaleFactor, hasTouch也许还有让网站相信您的浏览器是移动设备的用户代理。您可以手动设置它们(请参阅 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);
  // ...
})();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 puppeteer 在移动调试模式下打开 Chromium? 的相关文章

随机推荐

  • 如何在创建存储过程之前检查它是否存在

    我有一个 SQL 脚本 每次客户端执行 数据库管理 功能时都必须运行该脚本 该脚本包括在客户端数据库上创建存储过程 其中一些客户端可能在运行脚本时已经具有存储过程 而另一些则可能没有 我需要将缺失的存储过程添加到客户端数据库中 但无论我如何
  • SDL_Texture - 不完整类型

    一天前我安装了一个 SDL2 库 Debian Wheezy 中还没有 所以我使用了configure make make install命令 毕竟 当我尝试使用 SDL Texture 时 我收到此错误 error forward dec
  • Flexbox 子项收缩到某个点(但如果不需要则不会扩展)

    我这里有点问题 我有一个弹性盒子容器 里面有不同大小的孩子 根据数量和内容 子级可能会溢出父级 我想要的是孩子们缩小 这样他们尝试适应在父容器中 我通过向子级添加收缩和溢出属性来做到这一点 到目前为止 一切都很好 container gt
  • 加载DLL和直接调用之间的区别

    例如 我想使用像 GetWindowsDirectory 这样的 Windows API GetSystemInfo等等 我可以直接使用API 或通过调用GetProcAddress Method 1在这里我可以调用 APILoadLibr
  • 具有多个参数的 EXEC sp_executesql

    如何将参数传递给EXEC sp executesql表述正确吗 这就是我现在所拥有的 但我收到错误 alter PROCEDURE dbo usp getReceivedCases Add the parameters for the st
  • PHP 每次重新加载时都会创建新会话

    对于我的网站 会话管理大部分工作正常 会话的创建 保存和稍后使用都没有问题 但是当代码使用 session start 时 它总是创建新的 完全空的会话 下面有问题的代码 header Content Type text html char
  • 带有溢出菜单的自定义操作栏布局

    我用actionbarsherklock带有自定义操作栏的库如下所示 我的定制工具 ActionBar actionBar getSupportActionBar actionBar setDisplayOptions ActionBar
  • 如何延迟基本的 HTML 工具提示?

    我想知道是否有任何方法可以延迟经典的 HTML 工具提示 请不要使用像 qTip 这样的 jQuery 插件 它只是一个按钮
  • Android 中的 Sqlite 删除查询语法

    我想编写一个查询来从表中删除一行 我对写声明感到困惑 我在写这篇文章时需要一些帮助 我在这里用简单的 sql 语句提供我的要求 伪代码 delete from tablename where value string1 value2 str
  • System.out.println() 与 Java 中的 \n

    假设我想打印 5 行 这是最好的方法 对于性能和可读性 System out println System out println System out println System out println System out print
  • __init__.py 是做什么用的?

    What is init py在Python源目录中 它曾经是包的必需部分 旧的 3 3 之前的 常规包 not 较新的 3 3 命名空间包 这是文档 Python 定义了两种类型的包 常规包和命名空间包 常规包是 Python 3 2 及
  • 无法构建 open cv 2.3.1 源代码

    我在 ubuntu 11 04 中安装了 open cv 但每当我尝试运行任何代码时 我都会收到以下错误 OpenCV 错误 未指定错误 该功能未实现 使用 Windows GTK 2 x 或 Carbon 支持重新构建库 如果您使用的是
  • 当内存不足时,Android 不会终止堆栈中的活动

    我们一直在开发一个具有下拉仪表板的应用程序 允许用户在整个应用程序中导航 导航不是很标准 因为几乎可以从每个活动访问此菜单 使用菜单打开活动玩了一段时间后 堆栈开始不断增长 所有这些活动都包含列表视图 其中包含多个图像视图 每个视图大约需要
  • 如何使用 C# 提取括号之间的所有字符串?

    如果我有一个字符串 例如 您的 ID 是 1 您的电话号码是 0000000000 将这些字符串提取到字符串列表中的最佳方法是什么 括号之间的数字可以增加数字 因此搜索括号之间的字符串是更好的技术 我可以使用下面的代码提取括号之间的第一个字
  • 同步 sliderInput 和 textInput

    考虑以下闪亮的应用程序 library shiny User Interface UI ui lt fluidPage titlePanel Slider and Text input update titlePanel mainPanel
  • 如何通过意图添加带有名字和姓氏的联系人

    我正在尝试启动 android 本机 添加或编辑联系人 活动 其中一些数据已在表单中 这是我当前使用的代码 Intent intent new Intent Intent ACTION INSERT OR EDIT intent setTy
  • 有没有办法检测 JavaScript 中下载的开始?

    在我们当前的项目中 我们提供 PDF 下载 用户可以通过他提交的 HTML 表单进行自定义 动态生成 PDF 需要几秒钟的时间 我想将其可视化 例如禁用提交按钮直到下载开始 不幸的是 我找不到检测下载何时开始的方法 所以我不知道何时重新启用
  • “void 0”和“未定义”之间的区别

    我在用着 关闭编译器 在编译我的脚本时 我花费了以下内容 编译前 ClosureCompiler compilation level SIMPLE OPTIMIZATIONS output file name default js form
  • 如何阻止 JavaScript Promise 并返回解析结果? [复制]

    这个问题在这里已经有答案了 我显然误解了 js 承诺的解决方式或 返回 的语义 我被一个期望我同步的函数调用 返回一个值 计算该值需要一些异步代码 具体来说 ForEach 方法dstore系列 我想要完成的事情大约是这样 但这不起作用 因
  • 如何使用 puppeteer 在移动调试模式下打开 Chromium?

    我想用 puppeteer 启动 Chrome 并在移动调试模式下 这意味着单击开发工具中的 切换设备工具栏 按钮 抱歉 我没有足够的声望来上传图片 我尝试了以下代码 但它不起作用 const browser await puppeteer