PracticU

Find WebElement

בלי כתוביותעם כתוביות
PracticU › קורס סלניום בסיסי - בדיקות אוטומטיות - Selenium › Find WebElement
מילון מושגים:
תגית - סימון בקוד, למשל ב-HTML, שתוחם רכיב ומגדיר את תפקידו או תכונותיו. גם תווית לסימון וקיטלוג פריטים.
דפדפן - תוכנה שמציגה דפי אינטרנט ומריצה את הקוד שבהם, ומאפשרת לגלוש בין אתרים, למשל Chrome או Firefox.
דיבאג - תהליך של איתור, הבנה ותיקון תקלות בקוד, לעיתים בעזרת כלי שמאפשר לעצור ולעקוב אחר ריצת התוכנית.

Find WebElement
השיעור מציג איך מוצאים WebElement בתוך WebElement אחר. זה נחוץ כשיש כמה אלמנטים עם אותו טקסט בדף, ורוצים לבחור רק את זה שבתוך אזור מסוים.
השלבים העיקריים
1. הבעיה: בדף יכול להיות לינק בשם World Clock בשני מקומות שונים, בסרגל העליון ובתחתון. חיפוש לפי הטקסט בכל הדף יחזיר יותר מתוצאה אחת.
2. זיהוי האב: מוצאים את האלמנט האב שמכיל את הלינק הרצוי. בשיעור זה נעשה לפי ה-id של תגית nav, והאב מוגדר כ-WebElement בשם parent.
3. חיפוש מקונן: קוראים ל-parent.findElement(...), כך שהחיפוש מתבצע רק בתוך האב, ולא בכל הדף. התוצאה היא אלמנט בן.
4. לחיצה על הבן: על הבן מבצעים click(), והדפדפן מגיע לדף הנכון.
5. דיבאג: בשיעור נקבעת נקודת עצירה לפני הלחיצה, כדי לראות בחלון הדיבאג איזה אלמנט נבחר.
שימו לב
אפשר גם למצוא את הלינק לפי XPath מלא, אבל השיעור מדגים את החיפוש המקונן כדרך לצמצם את טווח החיפוש.
תרגלו את הדוגמה, ונסו למצוא אלמנט שחוזר בשני חלקים שונים של הדף.
השיעור הבא בקורס: תרגול של WebElement

פרקי ההרצאה: Find WebElement

  1. 00:00

    הקדמה: מציאת WebElement בתוך אלמנט אחר

  2. 01:16

    צמצום טווח החיפוש לפי אלמנט אב

  3. 02:14

    חיפוש מקונן של אלמנט בתוך האב

  4. 02:56

    הגדרת דרייבר ופתיחת אתר שעון ומזג אוויר

  5. 04:52

    זיהוי World Clock הכפול בדף

  6. 05:28

    זיהוי מקדים של תגית nav כאב

  7. 06:10

    מציאת האב לפי ID עם findElement

תמלול ההרצאה: Find WebElement

הטקסט המלא של הדקות הראשונות בהרצאה «Find WebElement» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

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

  2. 00:18

    הדבר הבסיסי שאנחנו צריכים לדעת זה לזהות WebElement ולמצוא אותם בקלות. היום נכיר טכניקה נוספת של מציאת WebElement בתוך ה-WebDriver אבל אבל הפעם נמצא את ה-Web-Element מתוך Web-Element אחר, נשתמש בהיררכיה של ה-Document Object Model כדי למצוא Web-Element בקלות מתוך Web-Element

  3. 00:42

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

  4. 00:58

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

  5. 01:10

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

  6. 01:43

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

  7. 02:00

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

  8. 02:30

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

  9. 02:50

    אז בואו נעשה ונראה דוגמה שתקן עלינו את ההסבר. אני הולך ל-ID שלי, הכנתי לי כבר את ה-Class שבו אני ארצה להדגים את הנושא.

  10. 03:04

    מה שאנחנו רואים פה זה מה שראינו בשיעורים הקודמים, אנחנו מכריזים על משתנה מערכת ב-Java על ידי System.SetProperty. השם של המשתנה הוא Chrome WebDriver.Driver זה שם קבוע שאנחנו צריכים להשתמש בו ולהפנות לקובץ אקזה שהוא הדרייבר שהורדנו מהאתר של גוגל אחרי שאנחנו משתמשים בחום אקזה

  11. 03:29

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

  12. 04:00

    של מתודות על אלמנט דרייבר על האינסטאנט דרייבר של הווב דרייבר ואנחנו עושים מקסימייז לחלון שלנו לאחר מכן אנחנו עושים גט לאתר הבדיקה שלנו אתר התרגול שלנו timeanddate.com/weather בואו נראה את זה רץ ומי הנקודה שאנחנו נגיע אליה נדגים מה אנחנו רוצים לעשות על מנת למצוא WebElement

  13. 04:26

    בתוך WebElement. אז אנחנו פותחים את הדפדפן שלנו, מבצעים maximize, ניגשים, עושים get ל-URL שנתנו, time and day, וטוענים את הדף.

  14. 04:39

    פה נראה את הקונסול של הריצה, אנחנו רואים test ended, יש לנו את ההודעה הזאת, ובעצם זה הסתיים. אז יש לנו את החלון של הריצה, האחרונה, ומה שאני רוצה לעשות עכשיו זה ללחוץ על הקישור World Clock.

  15. 04:57

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

  16. 05:19

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

  17. 05:37

    זאת אומרת אני אעשה אינספקט על ידי לחיצה על הכפתור הזה על ה-Toolbar הזה. בואו נלחץ עליו, אנחנו רואים שיש לי אלמנט או טאג HTML מסוג nav שמכיל בתוכו את הכישורים שאני מחפש, את הכישור World Clock.

  18. 06:01

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

  19. 06:19

    אז בואו נראה איך נעשה את זה. השלב הראשון יהיה לזהות את האבא על ידי Property ID, אז אני מעתיק את ה-ID של נב, וחוזר לקוד שלי ב-ID.

  20. 06:36

    מה שאני אעשה עכשיו, אני אכריז על WebElement, על משתנה מסוג WebElement, נקרא לו "פארנט", ופה אני אעשה "FindElement", ואני אשתמש ב"BuyID".

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

ההרצאה הקודמת: WebElement - getAttributeValue

ההרצאה הבאה: תרגול של WebElement

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

  • Find Fragment By ID

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

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