Playwright 1.65.0 は、TypeScript のクラスフィールドを tsconfig の useDefineForClassFields に合わせる。ES2022 以降、または target 未指定では有効。コンストラクタ引数のプロパティをフィールド初期化子で読むと、初期化子が先に走り失敗する。初期化をコンストラクタへ移すか、"useDefineForClassFields": false を置く。

ts
class LoginPage {
  readonly submit = this.page.getByRole("button", { name: "Submit" });
  constructor(private readonly page: Page) {}
}

locator.click()、check()、tap()、fill()、clear()、selectOption() は、要素が inert でなくなるまで待つ。inert のままならタイムアウト。URL 付きの cookies() は、サブドメインの host-only cookie や、パスが一致しない cookie を返さない。params の文字列と URLSearchParams は、URL にあるクエリを置き換えず追記する。proxy の資格情報はプロキシのチャレンジにだけ答え、サイトへは送らない。描画されないテキストは accessible name と aria snapshot から外れる。全シャードでテストが一つも無いと “No tests found” で失敗する。--pass-with-no-tests で許容でき、他シャードにテストがある空シャードは成功のまま。blob reporter はレポートを書く前に出力ディレクトリの中身を消す。1.64 は別名のレポートを残していた。

テストランナーは bunx --bun playwright test で Bun 上でも動く。--bun が無い bunx は Node.js。Node.js 20 ではテストしていない。使うのは 22、24、26。Docker イメージの Node.js は 26。同梱ブラウザは Chromium 158.0.8127.18、Firefox 159.0、WebKit 27.2。安定チャネルでは Chrome 157 と Edge 156 でも確認している。

#参考文献