PracticU

Wait For Web Element - חלק 3

בלי כתוביותעם כתוביות
PracticU › קורס סלניום בסיסי - בדיקות אוטומטיות - Selenium › Wait For Web Element - חלק 3
מילון מושגים:
משתנה - שם שמפנה למקום בזיכרון שבו נשמר ערך שיכול להשתנות במהלך ריצת התוכנית, כמו מספר, טקסט או אובייקט.
תנאי - ביטוי לוגי בקוד שתוצאתו אמת או שקר, וקובע אילו פקודות יתבצעו בהתאם לערכו.

Wait For Web Element - חלק 3
השיעור השלישי בנושא סינכרוניזציה מציג את explicit wait: המתנה ספציפית לאלמנט אחד, שנעשית בעזרת WebDriverWait וביטוי ExpectedConditions.
השלבים העיקריים
1. הגדרה: יוצרים משתנה מסוג WebDriverWait בעזרת new, ומעבירים לו את הדרייבר ואת זמן ההמתנה המקסימלי, למשל 10 שניות.
2. תנאי: בעזרת wait.until(...) מציינים מה מחכים לו. בדוגמה נבחר ExpectedConditions.visibilityOfElementLocated, כלומר האלמנט נמצא בדף וגם נראה.
3. זיהוי האלמנט: מעבירים לתנאי את אותו זיהוי של האלמנט, למשל By.linkText("My Account").
4. תוצאה: הפקודה מחזירה את האלמנט אחרי שהוא מופיע, ואז מבצעים עליו click(). אם הוא לא הופיע עד הזמן המקסימלי, נזרקת שגיאה.
5. עטיפה: בשיעור מוצג גם שילוב של שתי ההמתנות. ההמתנה הספציפית גוברת על ההגדרה הכללית, ולכן אין צורך לבטל את ה-implicit wait.
שימו לב
ה-sleep הקבוע כבר לא נחוץ כשמשתמשים ב-explicit wait. ההמתנה לא מבזבזת זמן: היא נעצרת ברגע שהתנאי מתקיים.
תרגלו את הכתיבה על אלמנט בדף שלכם, ונסו תנאי אחר מתוך ExpectedConditions.
השיעור הבא בקורס: המרה של Web Element ל-Select

פרקי ההרצאה: Wait For Web Element - חלק 3

  1. 00:00

    סקירה: שלוש דרכי ההמתנה

  2. 01:18

    דגימה של האלמנט כל חצי שנייה

  3. 01:55

    הגדרת דרייבר ו-implicit wait לטסט

  4. 02:30

    explicit wait לאלמנט ספציפי

  5. 03:05

    יצירת אובייקט WebDriverWait

  6. 03:53

    הגדרת זמן המתנה של עשר שניות

  7. 05:12

    המתנה עד שהאלמנט נראה לעין

  8. 05:48

    המתנה לכפתור My Account לפני לחיצה

תמלול ההרצאה: Wait For Web Element - חלק 3

הטקסט המלא של הדקות הראשונות בהרצאה «Wait For Web Element - חלק 3» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

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

  2. 00:33

    הראשוני הוא ממתין איקס שניות וננסה שוב, ורק בפעם השנייה אם הוא לא מוצא את ה-Web-Element שלו אז הוא מעיף אקספצ'יין-אלמנט-ווט-פארם. האפשרות השלישית שלנו להכניס סינכרוניזציה לטסטים שלנו היא האפשרות היותר מורכבת, דורשת יותר קוד, אבל היא מאפשרת לנו ערך נוסף גדול, שזה המתנה ספציפית למצב

  3. 01:03

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

  4. 01:30

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

  5. 01:50

    בואו נראה איך אנחנו נעשה את זה. נחזור ל-ID שלנו, ואנחנו רואים את ה-ID שלנו, יש לנו את ה-Public Static Void Main בקלאס, יש נושא פרופרטי, הגדרות הדרייבר שלנו, ויש לנו את היצירת דרייבר, הופעה, Manage Windows Maximize ו-Manage Timeout Implicit Wait, אמרנו 5 שניות,

  6. 02:15

    time unit second חמש שניות ואם הוא לא מוצא הוא מנסה עוד פעם אחרי חמש שניות ה-web driver שלי ורק אז יוצא ב-exception כאן אני עושה את ה-get time and date קוב ודה ופה אני מנסה ללחוץ כרגע מה שאני רוצה לעשות זה implicit wait for specific web element לדוגמה אותו ווב אלמנט שאנחנו

  7. 02:49

    מתייחסים אליו פה שזה הלוקייטור שלו אוקיי נבצע קליפ אז איך נבצע בעצם את ההמתנה הספציפית הזאת אנחנו צריכים לבצע קודם כל איזשהו תהליך מקדים והוא יצירת משתנה מופע של ווב דרייבר וייט נקרא לו וייט דרייבר וניצור את האינסטנס במילת המפתח new דרייבר, כותב שיפט ספייס ואנחנו מקבלים את

  8. 03:42

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

  9. 04:11

    דוגמא לצורך העניין נגדיר פה 10 שניות אוקיי כשאנחנו נתקלים באלמנט איטי ביותר המקסימום יהיה 10 שניות אנחנו יכולים לתת גם 5 או לשחק עם זה אבל בעיקרון אחרי 10 שניות נרצה לעדכן שהאתר איטי במיוחד אז גם אם זה מצליח אחרי 10 שניות נרצה לעצור את הטסט ולעדכן לדווח על התקלה הזאת אבל נגיד שאנחנו רוצים לתת איזשהו גרייס איזושהי סבלנות

  10. 04:40

    למערכת לחכות 10 שניות לפני שהיא מעיפה את ה-Exception Element בוטפן. אז במקרה הזה אנחנו כאמור יוצרים את ה-Weight Driver, אינסטנט של WebDriver-Weight, הולכים לתוכו את המשתנה ה-Driver שלנו, את אותו אינסטנט דרייבר ששתלנו, שיצרנו קודם על ידי ה-WebDriver מי הוא כל דרייבר,

  11. 05:04

    ולאחר מכן אנחנו יכולים כבר להתחיל בתהליך שלנו של ה-Explicit Weight, ה-Weight הספציפי. אם כן, אני ארצה עכשיו להשתמש באלמנט הזה שיצרתי, את אותו השתנה שיצרתי, שהוא מופע של WebDriver-Waite.

  12. 05:25

    איך אני אבצע את זה? הפעולה שאני אבצע עכשיו היא בעצם תחזיר לי את האלמנט, את ה-Web-אלמנט, אחרי שהיא תמתין שהוא יהיה זמין באותו DOM שאני בודק, באותו אתר.

  13. 05:39

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

  14. 05:53

    היא תצפה שהאובייקט יהיה ויזיבל לפני שהיא מבצעת את הלחיצה. איך אנחנו עושים את זה? אנחנו נשתמש ב... קודם כל, אני רוצה ליצור Web-אלמנט, נקרא לו MyCount, זה אותו אלמנט שאנחנו מחפשים כדי לרחוץ בדוגמה, ואנחנו עכשיו עושים את התהליך הבא על מנת להיות בטוחים שהאלמנט מזוהה והוא ויזיבל בדום

לקורס המלא: קורס סלניום Selenium בסיסי

ההרצאה הקודמת: Wait For Web Element - חלק 2

ההרצאה הבאה: המרה של Web Element ל-Select

הרצאות קשורות מקורסים אחרים

  • מה זה Web Service
  • TS Web Access
  • הסבר על מה זה Web API
  • Classic Web Service

קורסים נוספים במסלול

  • קורס מבוא ל-QA - מידע חשוב לבודק תוכנה
  • קורס פוסטמן - Postman - בדיקות לאתרי אינטרנט - API
  • קורס Robot Framework - בדיקות QA ממשק גרפי
  • קורס יסודות התכנות - שפת JAVA - קורס ג'אווה למתחילים
  • קורס סלניום מתקדם - CI/CD - Continues Integration
  • קורס מייבן - Maven