# @9l/playwright 中文文档

规范地址：https://npmcn.com/package/%409l/playwright/

版本：0\.6\.0
npm 元数据更新时间：2026-11-07T23:13:07.383Z
中文译文更新时间：2026-11-07T23:14:03.137Z
软件包许可：Apache-2\.0

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

原始 npm 页面：https://www.npmjs.com/package/%409l/playwright
原文对照：https://npmcn.com/package/%409l/playwright/?lang=original
项目主页：https://github.com/Quality-Max/9lives-runner#local-playwright-sdk
源码仓库：https://github.com/Quality-Max/9lives-runner

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

- 包体积（解压后）：230 kB，26 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=22
- 运行依赖：0 个
- peer 依赖：@playwright/test \>=1\.61\.1 \<2
- 首次发布：2026-10-08T14:41:54.577Z
- 最新版本发布：2026-11-07T23:13:07.057Z
- 近 30 天下载量：3270（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：27（近 12 个月 27 个）

## 中文简介

Playwright 定着和版本 9lives 去引擎桥

## 安装

```sh
npm install @9l/playwright
```

也可以使用：`pnpm add @9l/playwright`、`yarn add @9l/playwright`、`bun add @9l/playwright`

## README

# @ 9l/ playwright 游戏

本地 Playwright 设置 [9条跑道](https://github.com/Quality-Max/9lives-runner)。 。 。 . 这个 `n9l` 固定设备提供 `step` 自然语言 `goal` 方法。 。 . 保留普通的"Playwright"断言以确立预期的行为. 一个目标 完成后不验证该行为.

## 安装

发表于 [无](https://www.npmjs.com/package/@9l/playwright)数字 :

```sh
npm install --save-dev @9l/playwright@0.6.0 @playwright/test@1.64.1
npm exec playwright install chromium
```

对合格的运行时间使用节点24(节点22最低),Playwright 1.61.1 通过1.64.1和铬。 amd64/arm64上的macOS、Linux和Windows为 合格跑道目标(0.2.0CLI的窗户)。 对等范围是 `@playwright/test` `>=1.61.1 <2`; CI 限定 1.61.1至1.64.1(1.61.1、1.62.0、1.62.1.)的每份出版物, 1.63.0、1.64.0和1.64.1。 后期版本和其他浏览器引擎安装 但却不合格.

前进 `9l` 还需要可执行文件。 使用 [CLI 安装指南](https://github.com/Quality-Max/9lives-runner/blob/main/docs/install.md) 用于提供或从源头安装Go 1.27.3或更新. 此 npm 软件包没有安装 Go 或 捆绑跑者、浏览器或主机服务。 不需要平台账户.

## 使用

```ts
import {test, expect} from '@9l/playwright';

test('checkout confirms one order', async ({page, n9l}) => {
  await page.goto('http://localhost:3000/checkout');
  await n9l.step('place order', async () => {
    await page.getByRole('button', {name: 'Place order'}).click();
    await expect(page.getByRole('status')).toHaveText('Order confirmed');
  });
});
```

启动示例应用程序, 然后通过 Go 引擎运行选中的 spec :

```sh
9l run tests/checkout.spec.ts --sdk --format json
```

使用 `--pass-env NAME` 用于明确批准的应用程序设置。 浏览器 手柄和目标参数值留在工人中;供应商证书保留 进入 `n9l` fixture 需要由 `--sdk`。 。 。 . 现有的 Playwright 规格和配置仍然可以独立使用.

自然语言目标使用有限观察控制和打入动作 预算和保守的停止政策。 见 [目标合同](https://github.com/Quality-Max/9lives-runner/blob/main/docs/goals.md) 财务报告和审定财务报表 [SDK桥](https://github.com/Quality-Max/9lives-runner/blob/main/docs/sdk-bridge.md)。 。 。 . 现场提供者准确性,独立的行为核查,经核实的回放, iOS和Android设备超出以下所列范围不是合格特性.

## 安卓(实验)

Android目标驱动自有仿真器或附着的手机通过 App 3.8.0和UiAutomator2 8.7.0,同分 `app` 固定网络 目标用途。 它在API 35模拟器和一款Android 17电话上获得资格; 见 [Android 设置和资格限制](https://github.com/Quality-Max/9lives-runner/blob/main/docs/android-driver.md)。 。 。 .

1.  安装匹配的 0.6.0 CLI 和 `@9l/playwright` 合并(见 [安装](https://github.com/Quality-Max/9lives-runner/blob/main/docs/install.md), (中文(简体) ), 和固定的自动化工具,一次,在你的项目之外:
    
    ```sh
    npm install --prefix ~/.9l/android-tools --save-exact --ignore-scripts \
      appium@3.8.0 appium-uiautomator2-driver@8.7.0
    ```
    
    对于另一个位置, 设定 `NINELIVES_ANDROID_TOOLS`。 。 。 .
    
2.  检查一下主持人 医生报告 Java, SDK, 构建工具, AVD, 设备 和被钉住的工具,各有一个固定点:
    
    ```sh
    9l doctor --android
    ```
    
3.  在共享目标固定中构造驱动程序并命名 Playwright 项目 `android:<alias>`数字 :
    
    ```ts
    import {createTargetTest} from '@9l/playwright';
    import {androidTargetDriver} from '@9l/playwright/android';
    
    export const test = createTargetTest({
      native: target => androidTargetDriver({
        appId: target.appId, avd: 'Pixel_API_35',
        apk: 'build/app.apk', apkSHA256: '<digest>',
        appPackage: 'com.example.app', activity: '.MainActivity',
      }),
    });
    ```
    
    ```ts
    // playwright.config.ts
    import {defineConfig} from '@playwright/test';
    
    export default defineConfig({
      // A cold emulator boot fits in open()'s 180-second bound, which needs
      // a test timeout above Playwright's 30-second default.
      timeout: 240_000,
      // 9l owns attempts: a Playwright retry is refused.
      retries: 0,
      projects: [{name: 'android:app'}],
    });
    ```
    
4.  通过引擎运行,转发驱动程序依赖的变量. `9l run` 仅通过固定环境进行测试:
    
    ```sh
    9l run tests/login.spec.ts --sdk --target android:app \
      --pass-env ANDROID_HOME,JAVA_HOME,NINELIVES_ANDROID_TOOLS
    ```
    
    前进 `ANDROID_SDK_ROOT`, (中文(简体) ), `ANDROID_AVD_HOME` 或者说 `HOMEBREW_PREFIX` 如果 您的 SDK 或 AVD 是通过它们找到的. `9l doctor --android` 说哪一个.
    

驱动程序在会话时持有设备唯一的 UI 自定义连接 打开了,所以一个光谱面 `adb shell uiautomator dump` 返回无。 使用 代之以固定的操作,和 `app.deviceSerial()` 用于其他adb命令.

## 许可证

阿帕奇2.0 (英语). 软件包包括 `LICENSE` 财务报告和审定财务报表 `NOTICE`。 。 。 .

## 常见问题

### @9l/playwright 是什么？

Playwright 定着和版本 9lives 去引擎桥

### 如何安装 @9l/playwright？

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

### @9l/playwright 支持 TypeScript 吗？

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

### @9l/playwright 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @9l/playwright 需要什么版本的 Node\.js？

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

### @9l/playwright 可以商用吗？

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

### @9l/playwright 的下载量有多少？

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

### @9l/playwright 还在维护吗？

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

