Files
my-vault/01_Projects/Personal-Tech/Development/PlayWright.md
T

87 lines
2.6 KiB
Markdown

Here is the **definitive, consolidated guide** for setting up Playwright on **Arch Linux (WSL)**.
This summary skips the trial-and-error we just went through and provides the "Happy Path" to get everything working in one go.
---
### 📋 Prerequisites
* **WSL 2** (Recommended).
* **Proxy (Optional):** If you are behind a proxy, remember to use `sudo -E` to preserve environment variables.
---
### 🚀 Step 1: System Prep & Node.js
First, ensure your package database is fresh (fixes 404 errors) and install Node.js.
```bash
# Update system and install Node.js/npm
# Use -E if you have https_proxy set in your shell
sudo -E pacman -Syu nodejs npm
```
### 📦 Step 2: Install System Dependencies (The Critical Step)
**Do not** use `npx playwright install-deps` (it fails on Arch). Instead, install these packages manually. This list includes all the X11, Graphics, and Network libraries required by Chromium, Firefox, and WebKit.
```bash
sudo -E pacman -S --needed \
git \
nss \
nspr \
libdrm \
alsa-lib \
mesa \
gtk3 \
at-spi2-core \
pango \
cairo \
gdk-pixbuf2 \
libx11 \
libxcomposite \
libxdamage \
libxext \
libxfixes \
libxrandr \
libxcursor \
libxi \
libxrender \
libxcb \
freetype2 \
fontconfig \
ffmpeg
```
### 🛠️ Step 3: Initialize Playwright
Set up your project and download the browser binaries (these are separate from the system libs above).
```bash
# Create project directory
mkdir my-tests && cd my-tests
# Initialize (Select TypeScript/JavaScript as preferred)
npm init playwright@latest
# If prompted to "Install Playwright browsers", select True.
# If you need to install them manually later:
npx playwright install
```
### ✅ Step 4: Run Tests
You are now ready to run.
```bash
npx playwright test
```
---
### 💡 Troubleshooting Cheat Sheet
| Issue | Solution |
| :------------------------ | :-------------------------------------------------------------------------------- |
| **`install-deps` fails** | **Ignore it.** It only supports Ubuntu. Use the `pacman` command in Step 2. |
| **`libxxx.so not found`** | You are missing a package. Use `pkgfile libxxx.so` to find the Arch package name. |
| **404 Errors (Pacman)** | Your mirrors are out of sync. Run `sudo pacman -Syu` to refresh. |
| **Browser won't launch** | Ensure `nspr` and `nss` are installed (included in Step 2). |
| **GUI/Headless issues** | If visual mode fails, try `xvfb-run npx playwright test`. |