Playwright و Selenium هر دو مرورگر را برای اتوماسیون کنترل می‌کنند — در تست E2E و در استخراج سایت JavaScript. تفاوت در API، پایداری wait و هزینه نگهداری است؛ نه «همیشه یکی برنده».

خلاصه
  • پروژه سبز + SPA → اغلب Playwright سریع‌تر به نتیجه می‌رسد.
  • سازمان با Grid Selenium → migration تدریجی، نه الزام یک‌شبه.
  • صفحه استاتیک → نه Playwright نه Selenium؛ Requests ارزان‌تر است.

هر دو چه هستند؟

Selenium WebDriver استاندارد قدیمی: driver جدا (مثلاً ChromeDriver) پروتکل W3C را صدا می‌زند. Playwright از Microsoft: مرورگر bundled، API یکپارچه، auto-wait پیش‌فرض.

مقایسه برای scrape
موضوعPlaywrightSelenium
Auto-waitقوی، پیش‌فرضاغلب explicit wait دستی
مرورگرChromium/Firefox/WebKit یکجاChrome/Firefox via driver
Network interceptبله، راحتمحدودتر
Context جداnew_context() سادهprofile/incognito قابل تنظیم
Parallelچند context در یک browserGrid سازمانی رایج
اکوسیستمدر حال رشدبسیار بزرگ، legacy زیاد

Scraping در برابر testing

هر دو برای تست نوشته شده‌اند؛ scrape یعنی همان ابزار با هدف extract و SLA متفاوت (حجم، rate limit).

سناریو: پروژه استخراج JS از امروز

تیم کوچک، بدون Grid موجود → Playwright معمولاً سریع‌تر به نتیجه می‌رسد. سازمان با صدها تست Selenium روی Grid → migration تدریجی؛ scrape جدید می‌تواند Playwright باشد در کنار legacy.

Legacy

کد Selenium سال‌ها جریان دارد؛ rewrite هزینه دارد. اگر فقط ۳ flow scrape دارید، migration محدود منطقی است.

نکته

صفحه استاتیک هنوز با Requests ارزان‌تر است — مرورگر را برای همه URL باز نکنید.

در عمل چه انتخابی کنیم؟

پروژه سبز + SPA → Playwright. قرارداد Grid/سازمان روی WebDriver → Selenium تا زمان migration. در هر دو: wait واقعی، pool محدود، مدیریت خطا. Pillar: وب‌اسکرپینگ.