WebDriver BiDi - העתיד של אוטומציה בדפדפנים שונים

במאמר הקודם שלנו, בדקנו את הפרוטוקולים הקיימים לאוטומציה, כלומר WebDriver "Classic" ו-Chrome DevTools Protocol (CDP), לצד היתרונות והאילוצים שלהם.

הזן את WebDriver BiDi, העתיד של האוטומציה בדפדפנים! זהו פרוטוקול סטנדרטי חדש לאוטומציה של דפדפנים שנמצא כרגע בפיתוח, שמטרתו לשלב את המיטב של WebDriver "Classic" וגם של CDP. WebDriver BiDi מבטיחות תקשורת דו-כיוונית, שהופכת אותה למהירה כברירת מחדל, וכוללת מגוון אפשרויות של שליטה ברמה נמוכה.

WebDriver BiDi
WebDriver 'הגרסה הקלאסית' פרוטוקול Chrome DevTools (CDP)
התמיכה הטובה ביותר לדפדפנים שונים העברת הודעות מהירה ודו-כיוונית
תקן W3C שליטה ברמה נמוכה
לבדיקה

החזון של WebDriver BiDi הוא לאפשר לכם לכתוב בדיקות באמצעות כל אחד מהכלים האהובים עליכם, ולהפוך אותן לאוטומטיות בכל דפדפן או מנהל התקן, כדי להעניק לכם גמישות מלאה.

החזון שמאחורי WebDriver BiDi.
החזון שמאחורי WebDriver BiDi

תקינה

קבוצת העבודה של WebDriver BiDi מורכבת מקבוצה מגוונת של ספקי דפדפנים, פרויקטים בקוד פתוח לאוטומציה של דפדפנים וחברות שמציעות פתרונות אוטומציה לדפדפנים. שיתוף הפעולה הזה מבטיח עתיד מבטיח לאוטומציה של הדפדפן.

קבוצת העבודה של WebDriver BiDi
קבוצת העבודה של WebDriver BiDi

רוב העבודה מתבצעת במאגר הזה ב-GitHub. מדי חודש מתקיימות פגישות עם כל ספקי הדפדפנים המובילים, שמדווחים על ההתקדמות בפועל ודנים בפרטים שנויים במחלוקת ולא ידועים. קבוצת העבודה חוצת-החברות מוודאת שההחלטות מתואמות עם כל בעלי העניין.

לא פשוט ליצור פרוטוקול חדש ולהטמיע אותו. לשם כך נדרש שיתוף פעולה ועבודה משותפת מצד ספקים שונים. התהליך כולל:

  • מפרט: תהליך של בקשה לתגובות (RFC) כדי לאסוף משוב על ההצעה.
  • אימות: סדרה של בדיקות שניתנות להרצה בפלטפורמות שונות, ומשמשות כמקור מהימן לכל ההטמעות.
  • הטמעה: דפדפנים מטמיעים את הפרוטוקולים בהתאם למפרט ועוברים את בדיקות האימות.

אתגרים

בחלק הזה נפרט את האתגרים בהטמעת WebDriver BiDi, כי המטרה שלנו היא למצוא איזון בין תאימות, נוחות שימוש ויכולת הטמעה.

מעבר לשכפול CDP: אימוץ תאימות לדפדפנים שונים

לא ניתן לשכפל ישירות את CDP באמצעות האלמנטים הספציפיים ל-Chrome ול-DevTools, במפרט WebDriver BiDi. השימוש ב-CDP כפי שהוא לא יהיה אפשרי בדפדפנים אחרים, וספק מפרט שיתעד רק איך לעשות זאת בצורה חסרת טעם.

הבטחת זמן אחזור נמוך

התכנון של WebDriver BiDi בהתמודדות עם זמן אחזור גבוה בלי לפגוע בביצועים. ב-CDP זמן האחזור נמוך מפני שהלקוח והשרת פועלים כמעט תמיד באותו מחשב פיזי, אבל זה לא המצב ב-WebDriver BiDi. לכן, WebDriver BiDi צריכה לצמצם את מספר הנסיעות הלוך ושוב שנדרשות בין הלקוח לשרת.

תעדוף ארגונומיה ב-BiDi

לא צפוי שהמפתחים יבנו לקוחות חדשים של WebDriver BiDi, אבל חשוב מאוד להימנע לסיבוך יתר של הפרוטוקול. פתרון BiDi מורכב מדי, אבל לא רק מאתגר, אלא גם מסובך לעבודה, ומונע את האימוץ והשימוש בו.

הבטחת ההטמעה של BiDi

חובה לאפשר הטמעה של WebDriver BiDi, ולקחת בחשבון את המגבלות של הדפדפנים השונים. לדוגמה, שמירת כל האובייקטים של JavaScript שנחשפו אי פעם ללקוחות על ידי BiDi עלולה לגרום לדליפות זיכרון, בעוד שאובייקטים כלשהם לא יפריעו לניפוי באגים ולאינטראקציה עם ה-JavaScript של דף. חשוב למצוא איזון שמאפשר אוטומציה יעילה של הדפדפן מבלי לפגוע בביצועים.

להתגבר על אתגרים

בחלק הזה נדון באסטרטגיות שבהן נעשה שימוש כדי להתמודד עם האתגרים של הטמעת WebDriver BiDi.

יצירת אב טיפוס מהיר

טיפול באתגר שביישום הוא חיוני להצלחת BiDi. כדי להאיץ את ההתקדמות במפרט ובבדיקות, אימצנו גישה מהירה ליצירת אב טיפוס באמצעות NodeJS. העובדה הזו לא רק מאפשרת לנו להתנסות בפתרונות שונים, אלא גם מאפשרת לפתח בדיקות של פלטפורמת האינטרנט.

עיצוב תוך התחשבות בביצועים

ההחלטה לגבי העיצוב מבוססת על הביצועים, כי במקרים מסוימים זמן האחזור גבוה ב-WebDriver BiDi. לדוגמה, כשמאחזרים מזהה אובייקט וערך מהדפדפן, ל-WebDriver BiDi נדרש רק מסלול אחד, ול-CDP נדרשים שניים. הסיבה לכך היא ש-WebDriver BiDi יכול להחזיר גם את המזהה וגם את הערך בתגובה יחידה (התוצאה לא יכולה להיות ניתנת להקראה ל-JSON), ואילו CDP צריך להחזיר אותם בנפרד.

דגש על בדיקות פלטפורמת אינטרנט (WPT)

לבדיקות של פלטפורמת האינטרנט יש תפקיד חשוב בעבודה של BiDi. WPT מכסים כרגע את WebDriver "Classic" ו-WebDriver BiDi, היא משמשת כחומר עזר מהימן לכל ההטמעות. הבדיקות האלה נועדו לרוץ ולהעביר אותן בהטמעות שונות, כדי להבטיח הפעלה עקבית של פרוטוקול בכל הדפדפנים, דבר חיוני להצלחת WebDriver BiDi. אפשר לראות את תוצאת ה-WPT האחרונה במרכז השליטה.

מהי התוכנית ומה ההתקדמות הנוכחית?

מומלץ לעיין במפת הדרכים של WebDriver BiDi כדי להבין את הכיוון של הפרויקט. מפת הדרכים היא תהליך מתמשך ומתפתח כל הזמן.

כדאי לעיין בבדיקות האחרונות של פלטפורמת האינטרנט כדי לבדוק את סטטוס ההטמעה בדפדפנים השונים, כי הוא משמש כמקור המידע.

עקבו אחר אבני הדרך של הפרויקט כדי לעקוב אחר ההתקדמות שלו.

אנחנו מזמינים אתכם לגלות את ההישגים שבוצעו בשנת 2023 ולהתעדכן לגבי ההתפתחויות האחרונות.

תמיכה ב-WebDriver BiDi: איך אפשר לעזור

האם אתם מתרגש לקראת עתיד האוטומציה של הדפדפן עם WebDriver BiDi? כך תוכלו להביע את התמיכה שלכם:

  • אנחנו מזמינים אותך להיות בודק/ת ראשוני/ת, ולעזור בעיצוב העתיד של WebDriver BiDi.
  • כדאי לשתף את כולם! משתפים את הפרויקט ברשתות החברתיות באמצעות ה-hashtag #WebDriverBiDi.
  • בקשת תמיכה אפשר לשלוח בקשה להוספת תכונה או לבדוק עם הכלים האהובים עליכם לגבי התחלת השימוש ב-WebDriverBiDi.
  • להשתתף ב-RFC ולספק משוב על ממשקי ה-API.

שאלות נפוצות

האם WebDriver BiDi תחליף את פרוטוקול Chrome DevTools Protocol (CDP)?

לא. דפדפנים המבוססים על Chromium ימשיכו להשתמש ב-CDP למטרות ניפוי באגים. לעומת זאת, המפרט החדש הוא WebDriver BiDi, שעונה על צורכי הבדיקה עם API ארגונומי יותר.

מכיוון ש-Puppeteer משתמש ב-CDP, האם המשמעות היא שנוציא משימוש את Puppeteer?

לא. עם זאת, WebDriver BiDi מאפשר ל-Puppeteer להפוך לכלי אוטומציה לדפדפנים שונים.

יש לכם מפת דרכים ציבורית?

כן, כדאי לעיין במפת הדרכים שלנו ב-GitHub.