
הטקסט המלא של הדקות הראשונות בהרצאה «Javascript in JavaSelenium» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום לכולם, הסרטון הקרוב נדבר על JavaScript. איך אנחנו יכולים לשלב JavaScript בפרויקט האוטומציה שלנו? מה זה JavaScript?
JavaScript היא שפת תכנות מבוססת סקריפט שלא דורשת קומפילציה, אבל היא מאפשרת לנו לבצע הרבה דברים מורכבים על דף אינטרנט, על אובייקטים מסוג WebElement.
הסלניום, סביבת הסלניום, פרויקט הסלניום, יכול להשתמש ב-JavaScript על מנת לגשת ולבצע פעולות בדף האינטרנט שאותו אנחנו בודקים באותו WebDriver שאנחנו בודקים ועליו אנחנו מבצעים פעולות ומבצעים וידויים ובדיקות של פעולות.
למה לנו להשתמש ב-JavaScript? ראינו שיש לנו פקודות סלניום כמו קליקס, אנד קיז ואחרים ובעצם אנחנו מסתדרים איתם לא רע. JavaScript בעצם זו הרחבה extend לפעולות הבסיסיות של הסלניום.
הסלניום מאפשר לנו איזשהו סוג של ממשק, איזה סוג של API ואנחנו יכולים לבצע פעולות בכמה דרכים בעזרת הסילניום והווב דרייבר אנחנו יכולים לגשת גם לג'אווה סקריפט ולבצע עוד מגוון גדול של פעולות על הווב אלמנט שאותם אנחנו רוצים לשנות לבצע עליהם פעולות כמו קליק או לשלוח טקסט או לבצע עוד ועוד דברים אז הסיבה הראשונה שהיינו רוצים להשתמש בג'אווה
סקריפט היא סטביליטי זאת אומרת הרבה פעמים אנחנו נראה שה-JavaScript הרבה יותר יעילה והרבה יותר מהירה בפעולות שלה על פני הפעולות הבסיסיות של הסלניום. זאת אומרת, לפעמים אנחנו לא נצליח לבצע הזנת טקסט בדרך הפעולות הרגילות של הסלניום, לדוגמה סנט קיז, אבל לעומת זאת על ידי ה-Java אנחנו כן נוכל לבצע את זה.
ניפוליישן, אנחנו נרצה לעשות דברים, פעולות ממש ולראות אותם בדף, לדוגמה ביצוע היילייט, אנחנו נרצה לבצע איזשהו עברוב של WebElement ולצורך כך אנחנו יכולים להשתמש בג'אווה סקריפט שיכולה לשנות את ה-Background Color של אותו WebElement ועל ידי כך ליצור אשליה של היילייט.
אפשר להגיד שהג'אווה סקריפט בעצם היא כמעט ללא גבולות, אנחנו יכולים לבצע בעזרת סינטקס פשוט מגוון של פעולות ומניפולציות על אובייקטים. זאת אומרת אנחנו יכולים לבצע סקרול דאון של אותו סרגל של הדף ועל ידי כך בעצם לעשות סקרול דאון לדף לאובייקטים שהם לא ויזיבל או לא נמצאים במקום שאנחנו יכולים לבצע עליו פעולות.
אז מה הדברים שאנחנו יכולים לבצע בעזרת הג'אווה סקריט? אז האובייקט של ג'אווה סקריט בשפת הסלניום הוא הג'אווה סקריט אקזקיוטר וחלק מהדברים שאנחנו יכולים לעשות זה send keys, קליק, איילייט, סקרולד,
פייג' סקרולד ועוד מגוון של דברים. בשיעור הקרוב אנחנו נעשה דמו ונמחיש את הפעולות של ה-send keys וקליק, אבל חשוב לציין שיש מגוון גדול מאוד של פעולות שאנחנו לא נזכור, אבל קל מאוד לראות את המקור, את הטקסט ואת הסינטקס של איך לבצע אותם, רק נגיד שפעולת הסקרול דאון פייג' והאיילייט
הן נפוצות והן טובות ויעילות ואפשר לשלב אותן בתשתית האוטומציה, אבל בסרטון הזה אנחנו נראה את הדברים היותר בסיסיים כמו סנד קיז שזה טייפ טקסט וקליק. אז הצעדים לממש את הג'אווה סקריפט בתוך הפרויקט שלנו כמו הרבה דברים אחרים בסביבת האוטומציה הם מאוד מאוד פשוטים, הדבר הראשון שאנחנו צריכים לעשות זה להגדיר אינסטנט מסוג
JavaScript Executor והדבר השני זה להגדיר שהאינסטנט הזה הוא מקבל את הדרייבר אחרי שאנחנו עושים לו קאסטינג ל-JavaScript Executor שוב אנחנו צריכים לכוון את האינסטנט של ה-JavaScript Executor לדרייבר אבל קודם לכן לעשות קאסטינג הפעולה הזאת בסוגריים שכתוב JavaScript Executor בבולט השני
זה בעצם קאסטינג פעולת המרה של האובייקט דרייבר לסוג של JavaScript אקזקיוטר וכך אנחנו יכולים לבצע את הפעולות בעזרת האינסטנט JS. תכף אנחנו נדגים בדיוק למה אני מתכוון אז בואו ניגרש ל-ID להקליף שלנו ונראה איך אנחנו משלבים את ה-JavaScript בסביבת האוטומציה שלנו.
הסברנו איך לשלב את ה-JavaScript ועכשיו אנחנו נראה איך אנחנו מיישמים את ה-JavaScript בתוך סביבת האוטומציה שלנו. בתרגילים הקודמים ראינו שיש לנו את המתודה שיצרנו על מנת לעשות send keys ל-WebElement.
לדוגמה, אם אנחנו מריצים את ה-Test searchLocalTime שהמטרה שלו היא להקליד את הטקסט של ה-LocalTime בתוך אחד השדות שאנחנו רוצים לבדוק.
אז אם אנחנו מבצעים את זה, בואו נריץ את זה ב־DiBug, אני צובע את שם הטסט ולוחץ על דיבאג ואני מגיע בעצם כאן למתודה שנמצאת בתוך הדף עצמו של ההום פייג' ומבצע הקלדה של הערך ליו יורק בעזרת הפיל טקסט.
אוקיי? בואו נעצור את הריצה עכשיו ונניח שאנחנו רוצים לבצע את המימוש של ההקלדה של הפיל טקסט, אותה מתודה הזאת שנמצאת בתוך ה-base page, אבל הפעם אנחנו רוצים לבצע אותה בעזרת הסינטקס של ה-JavaScript.
איך אנחנו נבצע אותה? אני משכפל את המתודה עצמה של פילט טקסט, אבל הפעם אני נותן לסיום את js. היא עדיין תקבל שני ערכים, את הערך של ה-by ואת הערך של ה-string. הערך של ה-by יעזור לי להשתמש ב-Web-אלמנט שאני רוצה לבצע עליו את האזנת טקסט.
כאן יש לי את ה-clear, אני לא נוגע בזה, את הסנט קיז הקלאסי של הסילניום אני רוצה להחליף בג'אווה סקריפט. אז כאן אני מכניס את הג'אווה סקריפט. איך אני עושה את זה? אני צריך קודם כל לבצע את ההתחול של אותו אובייקט ג'אווה סקריפט אקזקיוטור.
אז בואו נראה איך אנחנו עושים את זה. אני כותב פה ג'אווה סקריפט. על ידי קונטרול ספייס אני יכול להשלים את השם לג'אווה סקריפט אקזקיוטור. נותן שם לאינסטנט שווה ניו.
כאן אני פותח סוגריים, אני מעתיק את הביטוי JavaScript Executor לתוך הסוגריים, ומיד אחר כך אני מצרף את הדרייבר שלי. זה הסינטקס שמאפשר לי בעצם לשלוח בעזרת ה-JS פקודות JavaScript.
שורה אחת שאנחנו צריכים לזכור על מנת לבצע את הפעולה הזאתי ללא עניות. סליחה, יש לי רק את הפעולה הזאתי. JavaScript Executor JS שווה JavaScript Executor, ומיד אחריו את הדרייבר שלי שיש לי אותו בתוך ה-Base Page מובנה.
אז אחרי שעשינו את זה, אנחנו יכולים להפעיל את הפקודה JavaScript Execute Script, אני בוחר את הבחירה של Execute Script, ואני צריך לשלוח לו שני פרמטרים. פרמטר אחד יהיה אותו סינטקסט JavaScript שמבצע האזנת טקסט לתוך השדה של ה-WebElement.
אני כותב פה arguments. 0.value שווה כאן אני צריך לתת את אותו ערך של הפרמטר שאני רוצה לבצע לתוכו את הטקסט זאת אומרת אני מצרף את הטקסט שאותו אני רוצה להשתמש במקרה שלנו זה אותו פרמטר שנמצא בתוך str וכרגע יש לנו את הסינטקס הג'אווה סקריפטי של הזנת הנתונים וכאן יש לנו את השרשור של אותו פרמטר str ובעזרת הארגומנט 0.value גרש אחד ואז גרשיים פלוס,
יש לי את ה str פלוס גרשיים שהוא סוגר את הביטוי שהוא מאפשר לי להכניס את הביטוי ואז עוד פעם גרש אחד שזה הביטוי ואז סגירה את הגרשיים כל אלה מאפשרים לי לשרשר את הסטרינג שנמצא בתוך הפרמטר השני שמקבל את המתודה וכאן אני צריך לשלוח לו פשוט את ה-WE, אותו Web-Element שזיהינו בעזרת הפרמטר ביי שהתקבל.
אז בעצם אנחנו מבחינתנו כתבנו את אותה פקודה של ה-Field Text, אבל הפעם השתמשנו ב-API של ה-JavaScript על מנת לבצע אותו. בואו נראה