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

如何通过USB使用Puppeteer连接真实Android设备?

Puppeteer连接真实Android设备的实现方法

可以通过ADB端口转发+DevTools调试协议的方式,用Puppeteer.connect()连接真实Android设备,具体步骤如下:

前置准备

  • Android设备开启USB调试(设置-开发者选项-USB调试,若没看到开发者选项,先在关于手机里连续点击版本号开启)
  • 电脑安装并配置好ADB工具,确保adb devices命令能识别到连接的设备

步骤1:配置ADB端口转发

在终端执行以下命令,将设备的Chrome调试端口转发到本地9222端口:

adb forward tcp:9222 localabstract:chrome_devtools_remote

若使用Chrome Beta/Dev版本或其他浏览器,需替换对应的调试端口标识:

  • Chrome Beta:chrome_devtools_remote_beta
  • 三星浏览器:samsung_devtools_remote
    可以通过adb shell ls /data/local/tmp命令查看设备上的调试端口标识

步骤2:获取DevTools连接地址

在电脑浏览器访问http://localhost:9222/json/version,复制返回结果中的webSocketDebuggerUrl字段值,格式类似ws://localhost:9222/devtools/browser/xxxxxx

步骤3:用Puppeteer.connect()建立连接

编写代码连接设备上的Chrome实例:

const puppeteer = require('puppeteer');

(async () => {
  // 替换为你获取到的webSocketDebuggerUrl
  const browserWSEndpoint = 'ws://localhost:9222/devtools/browser/xxxxxx';
  
  const browser = await puppeteer.connect({
    browserWSEndpoint,
    defaultViewport: null // 适配设备原生屏幕尺寸
  });

  // 获取已有页面或新建页面
  const pages = await browser.pages();
  const targetPage = pages[0] || await browser.newPage();
  
  // 执行测试逻辑,比如打开页面并获取性能数据
  await targetPage.goto('https://example.com');
  console.log('页面标题:', await targetPage.title());
  
  // 获取性能指标
  const metrics = await targetPage.metrics();
  console.log('性能数据:', metrics);

  await browser.disconnect();
})();

注意事项

  • 确保设备上的Chrome版本与Puppeteer依赖的Chrome版本尽量接近,避免调试协议不兼容导致连接失败
  • 若连接失败,可尝试重启ADB服务(adb kill-server + adb start-server)或重新插拔设备
  • 性能测试时,可结合targetPage.tracing.start()和targetPage.tracing.stop()生成性能追踪报告

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 18:43:08