
findElement(By.id(...)), ושומרים אותו במשתנה מסוג WebElement.new Select(element). מעכשיו יש גישה לכל המתודות של Select.selectByVisibleText("time") בוחרת את האפשרות שהטקסט שלה נראה למשתמש. אפשר גם לבחור לפי אינדקס או לפי value.getOptions() מחזיר רשימה של כל ה-options. לולאת for עוברת על הרשימה, ומדפיסה את הטקסט של כל אחת בעזרת getText().הטקסט המלא של הדקות הראשונות בהרצאה «המרה של Web Element ל-Select» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום, בשיעור הקרוב נדבר על Select, Web-Element מסוג Select. בואו נתחיל ונסביר בדיוק למה אנחנו מתכוונים. הכרנו את ה-Web-Element שלנו, זיהינו אותו בתוך ה-Web-Driver על ידי אקספאנט או ה-ID שלו או אטריביוט אחר.
יש אלמנטים מסוימים, Web-Element מסוימים, שהם בעצם מכילים בתוכם עוד Web-Elements והם מוצגים בתור Select, Select Table או Select List.
יש לנו אפשרות לבחור מתוכם ערכים, תכף נראה דוגמאות. למה אנחנו בעצם צריכים להתעסק עם ה-Web-אלמנט האלה ולא לפנות ישירות ל-Elemented?
בעצם כשאנחנו מסתכלים על ליסט באתר אינטרנט שאנחנו רוצים לבדוק, אנחנו לא רואים את כל הערכים בתוכו. לפעמים נרצה לסרוק אותו ולבדוק את הערכים שיש בהם.
פעולה בסיסית נוספת שנרצה לבצע זה בחירה. אנחנו נרצה לבחור אופשן מתוך ה-Selection. שוב, תכף נדגים את הכל. איך אנחנו נושאים את ההמרה הזאת מ-WebElement רגיל ל-WebElement משוכלל מסוג Select?
לפני שאנחנו עושים כל דבר אנחנו צריכים להבין שיש לנו WebElement שהוא בעצם Select או שה-Select מסתתר בתוך ה-WebElement.
איך נעשה את זה? אנחנו יכולים לפתוח את ה-InspectTool ב-DeveloperTool של הכרום, להצביע על אותו drop-down list שאנחנו חושדים בו במרכאות שהוא Select ולראות האם באמת הוא מכיל בתוכו את האובייקטים או את ה-WebElementOption.
Select, Tag Select מכיל בתוכו אופשיין והסלניום מאפשר לנו לאיזשהו גישה לאותם אלמנטים ל-Options שנמצאים בתוך ה-Select.
ה-Select עוטף את ה-Options שנמצאים בתוכו. אז בואו ניגש מיד לדמו ונראה איך אנחנו מתעסקים ומה אנחנו יכולים לעשות עם ה-select. אני ניגש לאקליפס שלי.
יצרתי לעצמי קלאס, קלאס לתרגול. אנחנו רואים שבקלאס יש את הדברים שאנחנו כבר מכירים, את ההכרזה על משתנה מערכת של chrome.webdriver.driver, קריאה ל- chrome.exe, WebDriver, New ChromeDriver, אנחנו יוצרים דרייבר מסוג ChromeDriver, אינסטנט של WebDriver,
ופה אנחנו עושים פעולות מנאג', מקסימייז ואימפליסיט וייט מה שעוזר לנו בעצם להמתין לאלמנטים איטיים שניתנים בדום תוך כדי הרצה. בואו נריץ את זה ונראה על מה אנחנו מדברים אני הולך ל-run ואני מריץ אותו קראתי לקלאס שלי convert web element to select פתחתי בעצם בראוזר מסוג חום עשיתי לו מקסימייז וטענתי
את הדף עליו אני אריץ את הבדיקה. אני רואה פה שיש לי איזשהו אובייקט WebElement ואם אני לוחץ על החצי הקטן בצד אני רואה שיש לי אפשרויות לבחור city, country, time. נגיד שאני רוצה לבחור ב-time, איך אני אעשה את זה?
אז יש כמה אפשרויות שה-select הוא מאפשר לנו אבל האפשרות שאנחנו רוצים ללמוד היום והאפשרות הקלה ביותר זה האפשרות להמיר את ה-WebElement הזה מסוג סלקט לווב אלמנט משוכלל שמאפשר לנו עוד מגוון של אופציות אז בואו נראה אני פותח את ה more tools developer tools אני אמקם את ה developer tools שלי בתחתית הדף זה יותר נוח
לי אני אצביע על אותו גליסט שאני רוצה להעביר אותו מ-web אלמנט רגיל ל-select-web-element ואני רואה באמת שזה סלקט טאג סלקט ובתוכו אם אני לוחץ על החצי השחור פה אני רואה שהוא מכיל אופצ'יונס אופצ'יונס אחד וליו אפס סלקטד והטקסט הוא סיטי אחר כך יש טקסט קאנטרי
אחד שתיים שש טמפרצ'ור ובעצם אם אני רוצה לבחור פה לעשות את הפעולה הזאתי מה שאני צריך לעשות זה את פעולת הקונברט אז תכף אנחנו נראה נזהה את הסלקט אז לפני שאנחנו מבצעים את ההמרה אנחנו צריכים קודם כל לזהות את האובייקט האבי את הסלקט עצמו שמכיל אובייקט בן אובייקטי
או וב אלמנטס בנים מסוג אופשיינס אז קודם כל נזהה את האבא לפי הפרופרטי או האטריביוט איי די אני אעתיק את הסורט ואני חוזר להקליף שלי ואיך אני מבצע את ההמרה הזאת אז קודם כל אני אכריז על וב אלמנט ואני אקרא לו אוקיי ואיך אני מזהה findElementByID ואנחנו רוצים להדביק את ה-ID שהעתקנו ואוקיי יש לנו את ה-WebElement שם מה שאנחנו רוצים לעשות זה ליצור מהאובייקט הזה
שהוא WebElement רגיל אובייקט משוכלל מסוג Select איך נעשה את זה נכריז על Instant או על Class Select נקרא לה Select After ופה נעשה New נכריז על ה-select, מה שהוא צריך לקבל זה בעצם את המשתנה המקורי.
שוב, אני חוזר על ההסבר, מצאנו את ה-object-hub שהוא ה-select, ועל מנת להמיר אותו ב-select משוכלל עשינו select, נתנו שם ל-instant, ופה אמרנו שזה new-select והצבנו בתוכו את ה-web-element הרגיל שמצאנו בשורה הקודמת, שורה 27. אוקיי, יפה, אז כל מה שנותר לנו עכשיו זה להשתמש ב-select
after. בואו נעשה את זה ואנחנו לוחצים סלקט אפטר, אני לוחץ נקודה ופה נפתחות לי מלא אפשרויות חדשות שלא ראינו קודם ב-web-element הקודמים הרגילים.
זאת אומרת זה אובייקט של web-element משוכלל מסוג סלקט. יש לי לדוגמה לעשות די סלקט אול, יש לי לעשות גט אול סלקטד, חלק אנחנו תכף נבחן, תכף אנחנו נדגים את זה, אז בדמו עכשיו אני רוצה לעשות את האופציה של ה-select by, אז יש לי select by index, זה אומר לפי המספר
הסידורי, 0, 1, 2, 3, לפי סדר ההופעה, יש לי לפי ה-value ויש לי לפי ה-visible text, אז בואו נגיד שאני רוצה להריץ לפי ה-visible text, זה הכי פשוט ואני אקיש פה את ה-visible text שאני רוצה לבחור לדוגמת time, בואו נחזור ונגיד מה אנחנו רוצים לעשות,
אנחנו רוצים לבחור פה במקום זה היה סיטי ואנחנו רצינו לעשות בחירה של טיים תכף אנחנו נראה את זה בדוגמה רץ אוקיי אז בואו נריץ את זה ונראה את הפעולה מתבצעת בעצם השתמשתי באופציה של סלקט ביי ויזיבר ווליום ואנחנו רוצים לראות באמת שהבחירה מבוצעת זאת אומרת שהוא משנה את הערך הבחירה מסיטי לטיים ואנחנו רואים באמת שבוצעה את האפשרות הזאת של ה-time,
אוקיי? ואז זה מה שנבחר, נבחר ה-time, ואנחנו יכולים לראות את התוצאה. אפשרות נוספת שיש לנו, ורצינו להציג אותה בדמו, זה האפשרות שלנו לסרוק בעצם את כל האפשרויות שמסתתרות בתוך ה-options.
איך נעשה את זה? אנחנו נכניס את התוצאות למערך,