השנה היא 2009. גרסה ראשונה של Selenium WebDriver או בשמו השני Selenium 2.0 רואה אור. זה היה מהפך של ממש בעולם האוטומציה. אם אנחנו מסתכלים היום על כל ההיסטוריה של הפרויקט הזה, אנחנו ללא ספק יכולים להגיד פה אחד שזה יצר סטנדרט של עולם האוטומציה. סלניום נלמד כבסיס של אוטומציה בסיסית ומתקדמת, הקהילה של סלניום הכי גדולה. אין ספור שאלות ותשובות ברשת (stackoverwflow למשל). המון יתרונות וחסרונות.
ועכשיו (בשנת 2022) תחשבו על מצב הבא: מה אם היו אומרים לכם באיזו נקודת זמן שיהיה פריימוורק שיעבוד ללא דרייברים של דפדפן (בעצם לא מבוסס סלניום דרייבר), יתמוך בכל הדפדפנים (חוץ מאלו שכבר מוגדרים כ -legacy יתמוך בשפות תכנות הפופולריות, ירוץ מהר, יכלול מנוע המתנה אוטומטי ומותאם לכל פעולה בדפדפן, יתעדכן באופן עקבי בדגש על בקשות של הקהילה ושגם חברה גדולה תעמוד מאחוריו? לדעתי, כל הנאמר לעיל על פריימוורק תיאורטי (במיוחד אחרי שסלניום תפס את מקומו המכובד) היה מתקבל כתיאוריה יפה שמקומה בעתיד הרחוק. אז זה נראה שהעתיד כבר כאן! והפריימוורק הזה כבר ממש לא דמיוני אלא כבר כאן איתנו ממש ושמו הוא - Playwright!
לפני שנגלוש ונכיר את הפריימוורק המדהים הזה, אציין משהו חשוב. יש המון פתרונות אוטומציה על גבי דפדפנים. מהסלניום הוותיק והמוכר ועד לפתרונות יותר צעירים (cypress, webdriver.io). בסופו של דבר, המטרה העיקרית של הכלים היא זהה - לבצע אוטומציה על גפי הדפדפנים. השוני בין הפריימוורקים הוא בעיקר:
אז מי אתה Playwright?
מדובר בשחקן הכי צעיר בעולם האוטומציה. הוא שוחרר לראשונה בפברואר 2020 עם גרסא 0.10.0 (נכון לכתיבת מאמר זה - הגרסה העדכנית היא 1.22.2). הוא האח הצעיר של פריימוורק פופולרי אחר ושמו הוא Puppeteer, ששייך לחברת גוגל. הרעיון להקמה של פרויקט Playwright התחיל ע"י מספר מפתחים של חברת גוגל, שהיו בצוות שפיתח את Puppeteer. הם החליטו לקחת את כל הידע שצברו עד כה ולפתח משהו מהפכני וחדש, שיעצים את היתרונות ויתקן את החסרונות (ולא רק של Puppeteer). אותה קבוצת מפתחים מחליטה לעבור לחברת מייקרוסופט ולהתחיל בפיתוח. בגרסאות הראשונות, השוני בין השניים (Puppeteer ו-Playwright) כמעט ולא היה. הסינטקס והפונקציות היו נראים באופן כמעט זהה לחלוטין, הארכיטקטורה הייתה זהה. לאור השימוש הרחב והפופולריות של Puppeteer - כמעט ואי-אפשר היה לזהות את האח הצעיר״.
בתחילת דרכו אפילו אתר עוד לא היה ל-Playwright. אבל עם כל גרסה חדשה שיצאה לאוויר, התחיל להיווצר השוני בין שני האחים והיום (יוני 2022), Playwright כבר משהו מהפכני, משהו אחר! אחד ההבדלים הבולטים ש-Puppeteer הינו פריימוורק של אוטומציה של דפדפן, כאשר Playwright הינו פריימוורק של טסטים או במילים אחרות testing framework.
יתרונות של Playwright
התקנה
הערה: אני מסביר כאן על אפשרויות ההתקנה של Playwright כאשר משתמשים בפיתוח באמצעות שפה ממשפחת JavaScript (בשימוש בשפות אחרות ההתקנה היא שונה ואפשר למצוא מידע על כך באתר הרשמי).
ישנן כמה אופציות של התקנה. כולן מוסברות באתר הנוח של פליירייט. אם נעבור לאתר הרשמי נראה כפתור גדול שמציע לנו את האופציה של Getting Started:
התקנה ידנית
אפשר פשוט להתקין את Playwright בצורה ידנית כספריה. במאמר הבא אני אפרט את כל הצעדים של ההתקנה אבל בגדול במקרה של התקנה ידנית נצטרך להריץ שתי פקודות:
npm i -D @playwright/test
npx playwright install
בתום הרצת הפקודות הנ״ל - נקבל את כל הבסיס הנחוץ לעבודה עם פליירייט.
התקנה דרך פקודת init
האפשרות הזאת התווספה החל מהגרסה 1.18.0 היא מאפשרת לתקין את הפרויקט הבסיסי של Playwright ע״י שימוש בפקודה אחת בלבד:
npm init playwright@latest
פקודה הזו לא רק תבצע לנו את ההתקנה, אלא גם תייצר לנו פרויקט בסיסי שכבר מוכן לעבודה. זה מייצר קובץ קונפיגורציה, קובץ טסטים ואפילו חיבור לCI של GitHub Actions. פריימוורק דמיוני כבר אמרנו? הוספת אופציה להתקנה בפקודה אחת של פרויקט בסיסי לדעתי מראה עד כמה לצוות של Playwright חשובים הנוחות והזמן של קהל המשתמשים.
ישנה עוד אופציה של התקנה דרך תוסף של VSCode אך לא נרחיב עליה כאן. ניתן למצוא את כלל האפשרויות של ההתקנה בעמוד הזה.
כאן מסתיים המאמר הראשון מסדרת המאמרים על Playwright. במאמרים הבאים נפרט בהרחבה על שלל פונקציות שימושיות ויכולות מגניבות שיש לו להציע.
יש כבר לא מעט מידע שניתן למצוא ברשת. יש כבר קורסים ביודמי, סרטונים ביוטיוב. לא לפני הרבה זמן החלטתי להקליט קורס בעברית חינם לקהילה שלנו. מוזמנים לבקר בערוץ היוטיוב שלי: Geek of Automation