PracticU

Javascript in JavaSelenium

בלי כתוביותעם כתוביות
PracticU › קורס סלניום מתקדם - CI/CD - Continues Integration › Javascript in JavaSelenium
מילון מושגים:
JavaScript - שפת תכנות שרצה בעיקר בדפדפן ומוסיפה אינטראקטיביות לדפי אינטרנט. רצה גם בצד השרת באמצעות Node.js.
בדיקות אוטומטיות - הרצת בדיקות תוכנה באמצעות סקריפטים וכלים, במקום בדיקה ידנית, כדי לחסוך זמן ולהגדיל כיסוי.
Selenium - כלי לאוטומציה של דפדפן, המשמש בעיקר לבדיקות אוטומטיות של אתרים ויישומי אינטרנט.
סקריפט - קובץ המכיל רצף פקודות שמבוצעות על ידי מפרש, לרוב כדי להפוך משימות לאוטומטיות.
דפדפן - תוכנה שמציגה דפי אינטרנט ומריצה את הקוד שבהם, ומאפשרת לגלוש בין אתרים, למשל Chrome או Firefox.
רכיב - יחידת בניין עצמאית וניתנת לשימוש חוזר בתוך מערכת או ממשק משתמש, שאחראית על חלק מוגדר מהתפקוד.
אובייקט - יחידה בתכנות מונחה עצמים שמאגדת נתונים (תכונות) ופעולות (מתודות). נוצר בדרך כלל ממחלקה המשמשת כתבנית.
משתנה - שם שמפנה למקום בזיכרון שבו נשמר ערך שיכול להשתנות במהלך ריצת התוכנית, כמו מספר, טקסט או אובייקט.

Javascript in JavaSelenium
בשיעור מוצג JavaScript בתוך אוטומציה של Selenium. השיעור מסביר מתי כדאי להשתמש בו ואיך מבצעים בעזרתו פעולות על רכיבי דף, במקום הפעולות הרגילות של Selenium.
השלבים העיקריים
1. מה זה JavaScript בסלניום: JavaScript היא שפת סקריפט שרצה בדפדפן, והסלניום מאפשר להריץ אותה על הדף שנבדק באותו WebDriver.
2. למה להשתמש בה: לפעמים הפעולות הרגילות, כמו הקלדה או קליק, לא מצליחות, וJavaScript יעילה ומהירה יותר. היא מאפשרת גם פעולות נוספות כמו הדגשה של רכיב או גלילה לרכיב שלא נראה.
3. אובייקט JavaScriptExecutor: נוצר אובייקט מסוג JavaScriptExecutor, שמקבל את ה-WebDriver ומבצע עליו המרה (cast). בעזרתו מפעילים את הפקודה executeScript.
4. הקלדה בעזרת JavaScript: שיטת הקלדה בשם fillText מקבלת את הרכיב ואת הטקסט. במקום sendKeys הרגיל מופעל סקריפט שמציב את הערך בשדה של הרכיב, והמשתנה מועבר כארגומנט.
5. קליק בעזרת JavaScript: באותו אופן מבצעים קליק על רכיב, בעזרת סקריפט שקורא ל-click על הרכיב שהועבר כארגומנט.
שימו לב
JavaScript יכולה לבצע כמעט כל פעולה על רכיב. הפעולות הנפוצות הן קליק, שליחת מקשים, הדגשה וגלילה. הטסט מקבל כך כלי נוסף שאינו מוגבל לפקודות הבסיסיות של Selenium.
השיעור הבא בקורס: סיכום החומר בקורס סלניום מתקדם - חלק 1

פרקי ההרצאה: Javascript in JavaSelenium

  1. 00:00

    מה זה JavaScript ולמה משתמשים בו

  2. 01:16

    JavaScript כהרחבה ל-API של סלניום

  3. 03:07

    אובייקט JavaScriptExecutor ופעולות נפוצות

  4. 04:30

    הגדרת JavaScriptExecutor בפרויקט

  5. 05:54

    זיהוי המתודה ב-Base Page והדיבאג

  6. 06:51

    שכפול מתודת הזנת הטקסט עם JavaScript

  7. 08:46

    הפעלת Execute Script עם פרמטרים

  8. 09:59

    שרשור הערך לתוך הסקריפט

תמלול ההרצאה: Javascript in JavaSelenium

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

  1. 00:02

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

  2. 00:13

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

  3. 00:30

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

  4. 00:56

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

  5. 01:13

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

  6. 01:51

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

  7. 02:24

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

  8. 02:46

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

  9. 03:17

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

  10. 03:36

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

  11. 04:08

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

  12. 04:45

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

  13. 05:14

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

  14. 05:52

    הסברנו איך לשלב את ה-JavaScript ועכשיו אנחנו נראה איך אנחנו מיישמים את ה-JavaScript בתוך סביבת האוטומציה שלנו. בתרגילים הקודמים ראינו שיש לנו את המתודה שיצרנו על מנת לעשות send keys ל-WebElement.

  15. 06:08

    לדוגמה, אם אנחנו מריצים את ה-Test searchLocalTime שהמטרה שלו היא להקליד את הטקסט של ה-LocalTime בתוך אחד השדות שאנחנו רוצים לבדוק.

  16. 06:22

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

  17. 06:43

    אוקיי? בואו נעצור את הריצה עכשיו ונניח שאנחנו רוצים לבצע את המימוש של ההקלדה של הפיל טקסט, אותה מתודה הזאת שנמצאת בתוך ה-base page, אבל הפעם אנחנו רוצים לבצע אותה בעזרת הסינטקס של ה-JavaScript.

  18. 07:01

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

  19. 07:23

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

  20. 07:45

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

  21. 08:03

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

  22. 08:21

    שורה אחת שאנחנו צריכים לזכור על מנת לבצע את הפעולה הזאתי ללא עניות. סליחה, יש לי רק את הפעולה הזאתי. JavaScript Executor JS שווה JavaScript Executor, ומיד אחריו את הדרייבר שלי שיש לי אותו בתוך ה-Base Page מובנה.

  23. 08:46

    אז אחרי שעשינו את זה, אנחנו יכולים להפעיל את הפקודה JavaScript Execute Script, אני בוחר את הבחירה של Execute Script, ואני צריך לשלוח לו שני פרמטרים. פרמטר אחד יהיה אותו סינטקסט JavaScript שמבצע האזנת טקסט לתוך השדה של ה-WebElement.

  24. 09:10

    אני כותב פה arguments. 0.value שווה כאן אני צריך לתת את אותו ערך של הפרמטר שאני רוצה לבצע לתוכו את הטקסט זאת אומרת אני מצרף את הטקסט שאותו אני רוצה להשתמש במקרה שלנו זה אותו פרמטר שנמצא בתוך str וכרגע יש לנו את הסינטקס הג'אווה סקריפטי של הזנת הנתונים וכאן יש לנו את השרשור של אותו פרמטר str ובעזרת הארגומנט 0.value גרש אחד ואז גרשיים פלוס,

  25. 10:14

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

  26. 10:43

    אז בעצם אנחנו מבחינתנו כתבנו את אותה פקודה של ה-Field Text, אבל הפעם השתמשנו ב-API של ה-JavaScript על מנת לבצע אותו. בואו נראה

לקורס המלא: קורס סלניום מתקדם אונליין

ההרצאה הקודמת: ReportNG - חלק 5

ההרצאה הבאה: סיכום החומר בקורס סלניום מתקדם - חלק 1

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

  • מבוא ל-Javascript
  • שפת JavaScript - משתנים
  • XSS - פריצה לאתר עם Javascript
  • התקפה MITM Javascript injection

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

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