WindowsでSafariブラウザを使用してWebサイトのデザイン、レイアウトを手動で確認する[iPhone/iPad/Mac/Playwright]



今回はWindowsでSafariブラウザを使用してWebサイトのデザイン、レイアウトを手動で確認する方法となります。iPhone、iPad、Macでのテストを行えます。
現在、テストできるSafariのバージョンは14,15,16,17,18,26です。
※これ以降の最新のバージョンは順次、追加されていきます。
※26はmacOS Tahoe26、iOS 26など2025年秋予定
目次
1. Safariブラウザのテストについて
2. Playwrightのインストール/アンインストール
3. Playwrightの使い方
4. Playwrightの設定とプログラム
5. Playwrightの実行
1. Safariブラウザのテストについて
パターン1 Mac/iPhone/iPadを購入する
費用がかかります。例えば、最新版のSafari18は廉価版iPhoneである「iPhone SE2 (第二世代)」中古のA~Cランクで15000円前後。「iPhone SE3 (第三世代)」はSランクで28000円前後。この辺りを購入したとしてもiPhone(iOS)のサポート期限を考える必要があります。
iOSとSafariのバージョンは同じです。
iPhone(iOS)の一覧はhttps://www.genz.jp/useful_information/iphone_size_quickreferencematrix/、Safariはhttps://ja.wikipedia.org/wiki/Safariを参照して下さい。
パターン2 VMwareなどを使用してmacOSを起動する
これはライセンス違反の可能性が高いので却下。
パターン3 無料のPlaywright(プレイライト)を使用する
Microsoftが開発したPlaywrightを使用する。PlaywrightはオープンソースのWeb UIのテスト自動化ライブラリです。今回はこれを手動で使用します。
PlaywrightはデフォルトでChromium、Firefox、WebKitのブラウザエンジンに対応しています。順にChrome、Firefox、Safariとなっています。基本的にSafariとWebKitは同じです。Playwrightの公式リリースノートに記載されているWebKitのバージョンはSafariと同じとなっています。
まとめると、iOS、Safari、WebKitのバージョンは同一である。
次はSafari15(iPhone13 miniの実機)とPlaywright(Webkit15)の同一性の確認です。Safari15は2022年製。Webkit18(Safari18)は2025年製。
同一のHTML/CSSですが、Safari18が正しく、Safari15はバグです。

2. Playwrightのインストール/アンインストール
1. Node.jsのインストール
Windows Installer(.msi)をダウンロードしてインストールします。
https://nodejs.org/en/download

※全てデフォルト設定のままインストールを進めてください。
次はコマンドプロンプトでバージョンを確認してみましょう。
// 各バージョン確認 node --version npm --version npx --version

2. Playwrightのインストール
PlaywrightのバージョンによってWebKitのバージョンが連動されますので、指定バージョンのPlaywrightをインストールします。WebKitのバージョンは公式リリースノートで確認できます。
(例) Version 1.55 // Playwrightのバージョン WebKit 26.0 Version 1.54 WebKit 26.0 Version 1.53 WebKit 18.5 Version 1.52 WebKit 18.4 Version 1.38 WebKit 17.0
[初心者用インストール] ※Playwright公式
// これは実行しなくて良いです npm init playwright@latest
全ての最新版がインストールされる。デフォルトのChromium、Firefox、WebKitのWebレンダリングエンジンが含まれます。
[バージョンを指定してインストール]
// バージョン指定 npm install playwright@1.53 // webkitブラウザエンジンのみインストール npx playwright install webkit // Playwrightのアップデート npm i -D @playwright/test@1.53
1.53の部分がPlaywrightのバージョンです。Playwright1.53はSafari(WebKit)18.5となります。

// ブラウザエンジンの場所 C:\Users\ユーザー名\AppData\Local\ms-playwright // 次の実行ファイルを起動するとそのままブラウザテスト可能です。 // ※webkit-2182の数値はバージョンによって異なります。 C:\Users\ユーザー名\AppData\Local\ms-playwright\webkit-2182\Playwright.exe // カレントディレクト(./)に次のファイルが生成されています。 C:\Users\ユーザー名\package.json C:\Users\ユーザー名\package-lock.json
3. Playwrightのアンインストール
先にPlaywrightのアンインストールのご案内。
npx playwright uninstall npm uninstall playwright // バージョンによってうまくいかない場合は、 // 次のファイルを手動で削除してから実行 ./package.json ./package-lock.json // 次は自動生成されるごみフォルダ ./test-results/ ./playwright-report/
Playwrightのバージョンを変更する場合は必ずpackage.json、package-lock.jsonを削除する必要があります。
3. Playwrightの使い方
まず、最初にPlaywrightはWeb UIの自動テスト機能がメインとなっています。もちろん、ブラウザをマウスで操作する手動方式でも可能です。
Playwrightの使い方は3種類となっています。
1. [自動]UIを起動して確認する
自動的にテストを行い、結果をスクリーンショットで表示するタイプです。
※マウスでリンクなどを操作できません。
2. [手動]ブラウザを起動して確認する(デバイスを指定可能)
操作するブラウザのデバイスを「Desktop Safari」「iPhone SE (3rd gen)」「iPhone SE (3rd gen) landscape」「iPhone 13 Mini」「iPhone 15」「iPhone 15 landscape」などと指定してから、起動するタイプです。
3. [手動]ブラウザを起動して確認する(デバイスを指定不可)
操作するブラウザのデバイスを「Desktop Safari」と同等で起動するタイプです。手動でブラウザのサイズが変更可能なので、スマートフォンのサイズに合わせることも可能です。
4. Playwrightの設定とプログラム
さて、ここからプログラムぽくなっていきます。
./playwright.config.jsの作成(設定ファイル)
「./」はpackage.jsonがあるフォルダ
// @ts-check import { defineConfig, devices } from '@playwright/test'; /** * Read environment variables from file. * https://github.com/motdotla/dotenv */ // import dotenv from 'dotenv'; // import path from 'path'; // dotenv.config({ path: path.resolve(__dirname, '.env') }); /** * @see https://playwright.dev/docs/test-configuration */ export default defineConfig({ testDir: './tests', /* Run tests in files in parallel */ fullyParallel: true, /* Fail the build on CI if you accidentally left test.only in the source code. */ forbidOnly: !!process.env.CI, /* Retry on CI only */ retries: process.env.CI ? 2 : 0, /* Opt out of parallel tests on CI. */ workers: process.env.CI ? 1 : undefined, /* Reporter to use. See https://playwright.dev/docs/test-reporters */ reporter: 'html', /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ use: { /* Base URL to use in actions like `await page.goto('/')`. */ // baseURL: 'http://localhost:3000', /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ trace: 'on-first-retry', }, /* Configure projects for major browsers */ projects: [ /* { name: 'chromium', use: { ...devices['Desktop Chrome'] }, }, { name: 'firefox', use: { ...devices['Desktop Firefox'] }, }, */ { name: 'webkit', use: { ...devices['Desktop Safari'] }, }, { name: 'Mobile Safari', use: { ...devices['iPhone SE (3rd gen)'], }, }, /* Test against mobile viewports. */ // { // name: 'Mobile Chrome', // use: { ...devices['Pixel 5'] }, // }, // { // name: 'Mobile Safari', // use: { ...devices['iPhone 12'] }, // }, /* Test against branded browsers. */ // { // name: 'Microsoft Edge', // use: { ...devices['Desktop Edge'], channel: 'msedge' }, // }, // { // name: 'Google Chrome', // use: { ...devices['Desktop Chrome'], channel: 'chrome' }, // }, ], /* Run your local dev server before starting the tests */ // webServer: { // command: 'npm run start', // url: 'http://localhost:3000', // reuseExistingServer: !process.env.CI, // }, });
「Desktop Safari」「iPhone SE (3rd gen)」などのデバイス名は公式GitHubに一覧があります。現在、iPhone16の設定はまだないようです。
※デバイス名によってはフォントが潰れるバグがあるようです。
次はおまけです。Safari15(iPhone13 mini/Webkit15)でテストする際は、Playwright1.21を使用。バージョンが古いので次の設定を使用します。
[Playwright Version 1.21前後用]
// @ts-check const { devices } = require('@playwright/test'); /** * @see https://playwright.dev/docs/test-configuration */ module.exports = { testDir: './tests', fullyParallel: true, forbidOnly: !!process.env.CI, retries: process.env.CI ? 2 : 0, workers: process.env.CI ? 1 : undefined, reporter: 'html', use: { trace: 'on-first-retry', // baseURL: 'http://localhost:3000', }, projects: [ /* { name: 'chromium', use: { ...devices['Desktop Chrome'] }, }, { name: 'firefox', use: { ...devices['Desktop Firefox'] }, }, */ { name: 'webkit', use: { ...devices['Desktop Safari'] }, }, { name: 'Mobile Safari', use: { ...devices['iPhone 13 Mini'], }, }, ], // webServer: { // command: 'npm run start', // url: 'http://localhost:3000', // reuseExistingServer: !process.env.CI, // }, };
※要は古いのでdefineConfigが未定義だからです。(2022年製)
./tests/の作成
testsフォルダを作成します。
./tests/ui.spec.jsの作成(自動テストコード)
// @ts-check import { test, expect } from '@playwright/test'; test('サイトを表示後、リンクをクリックして遷移するか確認する', async ({ page }) => { await page.goto('https://www.petitmonte.com/'); await page.click('text=ロボット・電子工作・マイコン'); await expect(page).toHaveURL('https://www.petitmonte.com/robot/'); });
./tests/browser.spec.jsの作成(手動テストコード)
// @ts-check import { test, expect } from '@playwright/test'; test("ブラウザを起動して手動テストを行う", async ({ page }) => { await page.goto("https://www.petitmonte.com/"); await page.pause(); });
5. Playwrightの実行
ui.spec.jsの実行(自動テスト)
次をコマンドプロンプトで実行するとUIが起動する。
npx playwright test --ui

左上にある「Projects」をクリックして「Mobile Safari」を選択後に緑色の再生ボタンを押す。次に左メニューの「ui.spec.js」の下をクリックする。
左から2番目のリストにあるActionsタブから「Navigate to "/"」「Click locator」「Expect "toHavaURL"」を順にマウスオーバーしていくと画面遷移の確認ができる。
このUI版は自動テスト結果のスクリーンショットのみですので、リンクなどクリックできません。対象URLもJavaScript側で設定する必要があります。
browser.spec.jsの実行(手動テスト)
// モバイルの起動 ※今回はiPhone SE (3rd gen) npx playwright test browser.spec.js --headed --project="Mobile Safari" // Desktop Safariの起動 npx playwright test browser.spec.js --headed --project="webkit"
起動するブラウザはplaywright.config.jsの設定次第で異なります。


Playwright.exeの実行(手動テスト)
前述したPlaywright.exeを実行するだけでも確認できます。
C:\Users\ユーザー名\AppData\Local\ms-playwright\webkit-2182\Playwright.exe
以上となります。お疲れさまでした✨
関連記事
プチモンテ ※この記事を書いた人
![]() | |
![]() | 💻 ITスキル・経験 サーバー構築からWebアプリケーション開発。IoTをはじめとする電子工作、ロボット、人工知能やスマホ/OSアプリまで分野問わず経験。 画像処理/音声処理/アニメーション、3Dゲーム、会計ソフト、PDF作成/編集、逆アセンブラ、EXE/DLLファイルの書き換えなどのアプリを公開。詳しくは自己紹介へ |
🎵 音楽制作 BGMは楽器(音源)さえあれば、何でも制作可能。歌モノは主にロック、バラード、ポップスを制作。歌詞は抒情詩、抒情的な楽曲が多い。楽曲制作は🔰2023年12月中旬 ~ |