
parent.findElement(...), כך שהחיפוש מתבצע רק בתוך האב, ולא בכל הדף. התוצאה היא אלמנט בן.click(), והדפדפן מגיע לדף הנכון.הטקסט המלא של הדקות הראשונות בהרצאה «Find WebElement» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום לכולם בסרטונים הקודמים הכרנו את ה-WebDriver והכרנו את ה-WebElement. ראינו שאנחנו יכולים לבצע הרבה פעולות על הדף דרך ה-WebElement שנמצא בתוך ה-WebDriver.
הדבר הבסיסי שאנחנו צריכים לדעת זה לזהות WebElement ולמצוא אותם בקלות. היום נכיר טכניקה נוספת של מציאת WebElement בתוך ה-WebDriver אבל אבל הפעם נמצא את ה-Web-Element מתוך Web-Element אחר, נשתמש בהיררכיה של ה-Document Object Model כדי למצוא Web-Element בקלות מתוך Web-Element
אחר. אז בואו נתחיל ונדבר על הנושא הזה. אנחנו צריכים למצוא Web-Element על מנת לבצע עליו פעולות כמו לשלוח טקסט או לבצע קליק, אנחנו קודם כל צריכים למצוא את ה-Web-Element שלנו.
לפעמים יהיה לנו קשה למצוא Web-Element בכל הדף, שיהיו הרבה Web-אלמנט דומים עם אותו טקסט, לדוגמה לינק עם אותו טקסט בהרבה מקומות בדף שלנו.
תכף נראה דוגמה בדיוק על מה אני מדבר. לצורך כך נרצה לצמצם את טווח החיפוש שלנו, את טווח הזיהוי של ה-Web-אלמנט שלנו, ואת זה נעשה על ידי מציאת Web-אלמנט אבא. כשנמצא את ה-Web-אלמנט אבא נוכל לחפש בתוכו את ה-Web-Element לפי הזיהוי שאנחנו נרצה, ונוכל למצוא בדיוק את ה-Web-Element הספציפי שאנחנו רוצים.
איך אנחנו הולכים לעשות את הזיהוי של ה-Web-Element? הזיהוי של ה-Web-Element מחייב אותנו קודם כל לזהות את האבא שבתוכו אנחנו רוצים לחפש. איך אנחנו נמצא את האבא?
אנחנו יכולים למצוא את האבא של ה-Web-Element שאנחנו מחפשים, כמו שמצאנו עד עכשיו, בעזרת פרופרטי של האלמנט כמו איידי, ניים, קלאס, אקספאט ואחרים ולאחר מכן נבצע חיפוש נוסף, חיפוש מקונן, חיפוש פנימי על האבא בעזרת אותם מאפיינים,
אותם פרופרטי נחפש את הבן, זאת אומרת נמצא את האבא ואז נוכל שוב להשתמש ב-איידי, בניים, בקלאס, בלינק טקסט, או בפרופרטי אחר של ה-Web-Element-Bin כדי למצוא אותו בתוכה.
אז בואו נעשה ונראה דוגמה שתקן עלינו את ההסבר. אני הולך ל-ID שלי, הכנתי לי כבר את ה-Class שבו אני ארצה להדגים את הנושא.
מה שאנחנו רואים פה זה מה שראינו בשיעורים הקודמים, אנחנו מכריזים על משתנה מערכת ב-Java על ידי System.SetProperty. השם של המשתנה הוא Chrome WebDriver.Driver זה שם קבוע שאנחנו צריכים להשתמש בו ולהפנות לקובץ אקזה שהוא הדרייבר שהורדנו מהאתר של גוגל אחרי שאנחנו משתמשים בחום אקזה
אנחנו יכולים להגדיר ווב דרייבר דרייבר זה השם של האינסטנט והוא יהיה מסוג חום דרייבר יש כמה דרייברים יש דרייברים לפי דפדפן ואנחנו עובדים עם החום שהוא הקל והנוח ביותר אחר כך אנחנו מבצעים על הדרייבר הפעלת מתודה מנאג' ובתוכה הפעלה מתודה נוספת ווינדו ומפעילים את המתודה הפנימית מקסימייז היררכיה
של מתודות על אלמנט דרייבר על האינסטאנט דרייבר של הווב דרייבר ואנחנו עושים מקסימייז לחלון שלנו לאחר מכן אנחנו עושים גט לאתר הבדיקה שלנו אתר התרגול שלנו timeanddate.com/weather בואו נראה את זה רץ ומי הנקודה שאנחנו נגיע אליה נדגים מה אנחנו רוצים לעשות על מנת למצוא WebElement
בתוך WebElement. אז אנחנו פותחים את הדפדפן שלנו, מבצעים maximize, ניגשים, עושים get ל-URL שנתנו, time and day, וטוענים את הדף.
פה נראה את הקונסול של הריצה, אנחנו רואים test ended, יש לנו את ההודעה הזאת, ובעצם זה הסתיים. אז יש לנו את החלון של הריצה, האחרונה, ומה שאני רוצה לעשות עכשיו זה ללחוץ על הקישור World Clock.
אני יכול לזהות את זה על ידי הלינק טקסט, אבל יש לי בעיה, יש פה עוד קישור וגם הוא עם אותו טקסט word clock. אני רוצה שהוא ילחץ על הקישור הזה, זאת אומרת שהטסט שלי ידע שאני מתכוון לword clock הזה ולא לword clock העליון יותר.
אתם רואים שהם נמצאים בשני טולברים שונים, אחד נמצא בחלק הזה והשני נמצא בחלק התחתון. אז בואו נראה איך אנחנו נעשה את זה. מה שאני ארצה לעשות עכשיו זה בעצם לעשות זיהוי מקדים של האבא של הכישור שאותו אני רוצה לזהות.
זאת אומרת אני אעשה אינספקט על ידי לחיצה על הכפתור הזה על ה-Toolbar הזה. בואו נלחץ עליו, אנחנו רואים שיש לי אלמנט או טאג HTML מסוג nav שמכיל בתוכו את הכישורים שאני מחפש, את הכישור World Clock.
זאת אומרת אני רוצה קודם כל לזהות את האבא, ורק אחר כך לזהות את ה-V. למעשה הייתי יכול לעשות את הזיהוי גם בעזרת אקספאט, אבל לצורך הדוגמה חשוב לי להסביר גם את הנושא של ה-Find Element, המציאה של Find Element מכונן.
אז בואו נראה איך נעשה את זה. השלב הראשון יהיה לזהות את האבא על ידי Property ID, אז אני מעתיק את ה-ID של נב, וחוזר לקוד שלי ב-ID.
מה שאני אעשה עכשיו, אני אכריז על WebElement, על משתנה מסוג WebElement, נקרא לו "פארנט", ופה אני אעשה "FindElement", ואני אשתמש ב"BuyID".