# @browserstack/mobilewright 中文文档

规范地址：https://npmcn.com/package/%40browserstack/mobilewright/

版本：0\.1\.1
npm 元数据更新时间：2026-08-19T11:27:48.022Z
中文译文更新时间：2026-11-08T16:47:10.581Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40browserstack/mobilewright
原文对照：https://npmcn.com/package/%40browserstack/mobilewright/?lang=original
项目主页：https://www.browserstack.com/app-automate

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：182 kB，52 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=18
- 运行依赖：1 个
- peer 依赖：@mobilewright/core \>=0\.0\.53 \<0\.1\.0，@mobilewright/protocol \>=0\.0\.53 \<0\.1\.0，mobilewright \>=0\.0\.53 \<0\.1\.0
- 首次发布：2026-08-19T10:53:31.403Z
- 最新版本发布：2026-08-19T11:27:47.739Z
- 近 30 天下载量：2186（2026-10-09 至 2026-11-07，npm 官方下载统计）
- 已发布版本数：2（近 12 个月 2 个）

## 中文简介

Mobilewright 浏览器Stack App 自动驱动程序

## 安装

```sh
npm install @browserstack/mobilewright
```

也可以使用：`pnpm add @browserstack/mobilewright`、`yarn add @browserstack/mobilewright`、`bun add @browserstack/mobilewright`

## README

# @ 浏览erserstack/ 移动作家

浏览器Stack App 自动驱动程序 [移动作家](https://github.com/mobile-next/mobilewright)。 。 。 . 每个测试会话都是一等App Automate会话——仪表板,服务器侧视频, 设备/网络日志、浏览器Stack本地、地理定位/网络模拟、相机和生物鉴别 注射——在测试中没有浏览器Stack特定代码.

要求数 `mobilewright` ^ 0.0.53; 节点要求正是您现有的 Mobilewright project's——这个软件包没有增加自己的任何内容. 安装到现有的 Mobilewright 项目 (单位:千美元)`@mobilewright/test` 随你的移动作家设置而来:

```bash
npm i -D @browserstack/mobilewright
```

> 抬头(上游,不是浏览器Stack):尽管移动作家声明 `node >=18`, (中文(简体) ), 其配置加载需要在 CommonJS 项目中的节点 \\ 20.19 (`require()` 无害环境管理一揽子措施)—— 节点 18. x 配置负载失败 `ERR_REQUIRE_ESM` 即使没有配置驱动程序。 见 `upstream/README.md` 第3节.

通过设置驱动程序在浏览器Stack指向已存在的 Mobilewright 套件:

```ts
// mobilewright.config.ts
import { defineConfig } from 'mobilewright';
import { browserStackDriver } from '@browserstack/mobilewright';

export default defineConfig({
  testDir: './tests',
  bundleId: 'org.wikipedia.alpha',
  driver: browserStackDriver({
    app: 'bs://<app-id>',          // or a local .apk/.ipa path, or an https:// url — uploaded for you
    project: 'My project',
  }),
  projects: [
    { name: 'android', use: { platform: 'android', deviceName: /Google Pixel 8\b/ } },
    { name: 'ios', use: { platform: 'ios', deviceType: 'real', osVersion: '>=17 <19' } },
  ],
});
```

`browserStackDriver(options)` 实值 `new BrowserStackDriver(options)` 拼写像配置—— 移动作家~0.0.53以司机为例. 设备选择使用标准配置 字段 : `deviceName` (登记), `osVersion` (范围表达方式如下: `">=17 <19"`, (中文(简体) ), `deviceType` (App Automate 为 `real` 设备)。 全权证书来自 `BROWSERSTACK_USERNAME` 编号 : `BROWSERSTACK_ACCESS_KEY` (或 `username`编号 :`accessKey` 选项); 应用程序后退 页:1 `BROWSERSTACK_APP` (原始内容存档于2018-10-21). Env var. 测试是股票移动作家.

**会话名称和状态是自动的.** 驾驶员 `TestObserver`,哪个 移动wright 在没有任何记者配置的情况下引用:运行后每一次 App Automate 会话 以它进行的测试,标记通过/失败,以及它的仪表板链接打印后命名.

## 在本地设备与浏览器Stack之间切换

保留一个配置并按环境选择驱动程序 – 默认本地( mobilecli), 浏览器Stack 当全权证书到齐时:

```ts
const config: MobilewrightConfig = { /* ...your existing config... */ };

if (process.env.BROWSERSTACK_USERNAME) {
  config.driver = browserStackDriver({ app: './apps/checkout.apk' });
}

export default defineConfig(config);
```

```bash
npx mobilewright test                                     # local device, as always
BROWSERSTACK_USERNAME=… BROWSERSTACK_ACCESS_KEY=… \
  npx mobilewright test                                   # the same suite on App Automate
```

当地 `.apk`编号 :`.ipa` 路径自动上传( 每跑一次), 固定点' 正在跳过会话应用程序的会话中段重新安装 .

## 里面的东西

-   `src/driver.ts` 完全的移动作家驾驶合同: `DeviceAllocator` (每个工人名额一个App自动会话;工人按会话编号附加)+ `MobilewrightSession` (26个动词+) `webViewBridge` 包含多网页视图页面扩展) 超过浏览器Stack的标准 W3C WebDriver 会话 API.
-   `src/observer.ts` - 那个 `TestObserver`:自动会话命名/状态+仪表板链接.
-   `src/executor.ts` —— 说 `browserStackExecutor()` 用于浏览器Stack特定动作的逃出舱门 (相机图像注射,生物鉴别,苹果支付,.
-   `src/reporter.ts` - 独立的Playwright记者;由观察员取而代之,为 明确需要记者式接线的套件.
-   `e2e/` - 配套套房(Android/iOS原生、网页视图、第二阶段功能、浏览器Stack) 当地,Milliways跨平台套房, 发行相容门(`e2e/compat-check.sh`, (中文(简体) ), 以及当地-vs-云性能基准`e2e/perf/`) (中文(简体) ).
-   `upstream/` ——待这些套房发现的一行上游修复.

## 设置

Plain npm — 该套件针对已发布的移动wright套件构建:

```bash
npm install && npm run build && npm run lint && npm run test:unit

# conformance against real App Automate devices
export BROWSERSTACK_USERNAME=… BROWSERSTACK_ACCESS_KEY=…
cd e2e && ./compat-check.sh
```

`e2e/compat-check.sh` 针入 `@mobilewright/protocol` 版本, 并在 上游的驱动界面会移动;在检讨更改后会故意撞出被子.

## 贡献安全( S)

见 [捐款额](https://npmcn.com/package/%40browserstack/mobilewright/CONTRIBUTING.md) 设置、样式、相配门政策以及 释放过程。 私下报告脆弱性 [警卫](https://npmcn.com/package/%40browserstack/mobilewright/SECURITY.md) 从不走过 公众问题。 代码审查由App Automate团队所有(`.github/CODEOWNERS`(三); 依赖性由Dependabot监视.

## 许可证

Apache-2.0 (见 `LICENSE`) (中文(简体) ).

## 常见问题

### @browserstack/mobilewright 是什么？

Mobilewright 浏览器Stack App 自动驱动程序

### 如何安装 @browserstack/mobilewright？

在项目目录运行 npm install @browserstack/mobilewright，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：@mobilewright/core（\>=0\.0\.53 \<0\.1\.0）、@mobilewright/protocol（\>=0\.0\.53 \<0\.1\.0）、mobilewright（\>=0\.0\.53 \<0\.1\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @browserstack/mobilewright 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @browserstack/mobilewright 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @browserstack/mobilewright 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=18。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @browserstack/mobilewright 可以商用吗？

@browserstack/mobilewright 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @browserstack/mobilewright 的下载量有多少？

根据 npm 官方下载统计，@browserstack/mobilewright 在 2026/10/09 – 2026/11/07 这 30 天内被下载 2,186 次，日均约 73 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @browserstack/mobilewright 还在维护吗？

最新版本 0\.1\.1 发布于 2026/08/19（2 个月前）；至今共发布 2 个版本，其中过去 12 个月发布了 2 个；首次发布于 2026/08/19。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

