WebdriverCourse12

שיעור 12: לוגים

ישנם כלים חיצוניים מצויינים בעבודה עם סלניום לאיסוף לוגים. בשיעור זה נלמד כיצד בעצמנו נוכל ליצור איזושהי מערכת אשר שולחת תרחישים (Events) ואוספת אותם להצגה למשתמש. כך, באופן זה, נוכל בקלות יותר לדבג את הקוד שלנו. לשם כך נלמד על מחלקה וממשק שעד עכשיו לא הצגנו: מחלקת EventFiringWebDriver וממשק – WebDriverEventListner. על פי השם, אין […]

WebdriverCourse13

שיעור 13: פרופילי דפדפן

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

WebdriverCourse14

שיעור 14: פרוקסי

בסלניום ניתן להשתמש בעבודה מול דפדפן עם שרת פרוקסי. בשיעור זה נלמד כיצד ניתן ליישם פעולה זו מול דפדפנים שונים. בדרך כלל באותו איזור בקוד היכן שמגדירים את הפרוקסי, ניתן להגדיר לעבוד עם הדפדפן ב-capabilities נוספים, גם אותם נראה פה בדוגמאות.   דפדפן הכרום: קריאה בג'אווה: String userAgent = "user_agent_string"; String proxy = "example:80"; org.openqa.selenium.Proxy […]

WebdriverCourse15

שיעור 15: צילומי מסך

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

WebdriverCourse11

שיעור 16: Page Object Model

עד עכשיו כתבנו קוד ללא שום מבניות מסויימת. הסתכלנו על עמוד בודד, אל האלמנטים שלו (ורק שלו) שלחנו פקודות של סלניום. אך מה יקרה כאשר נצטרך לעבוד עם הרבה דפים (מה שסביר להניח יקרה בפרוייקט אוטומציה אמיתי) ? הרי לא נרצה לקרוא לפקודה: driver.findElement(By.id("myID")).click(); עשרות פעמים בעשרות דפים שונים במוצר, זה יהיה גם שיכפול קוד […]

WebdriverCourse16

שיעור 17: שכבות

ברוכים הבאים לשיעור מספר 17, אולי השיעור החשוב ביותר בקורס זה. בשיעור זה נלמד כיצד פרוייקט אוטומציה אמיתי בנוי. איך ניתן לקחת את כל המידע הזה שלמדנו עד עכשיו וליישם אותו בתוך מודל יעיל, חסכוני וקל לתחזוקה. בשיעור שעבר למדנו על טכניקת ה-Page Object בה ניתן לעבוד בצורה חכמה תוך הימנעות משיכפולי קוד, מודל השכבות […]

WebdriverCourse18

שיעור 18: Headless Browser

עד עכשיו הבנו כי יש לי את ממשק ה-API של ה-Webdriver שהוא יודע לדבר עם מגוון של דרייברים, לכל דפדפן הדרייבר שלו. בשיעור זה נלמד על דרייבר ששונה במהותו מהבחינה התפיסתית מכל השאר, זהו ה- HtmlUnitDriver. אם chromedriver עובד מול דפדפן הכרום וה-iedriver עובד מול דפדפן האקספלורר , ניתן להגיד כי ה-HtmlUnitDriver עובד על Headless […]

WebdriverCourse19

שיעור 19: עבודה עם JS

אין זה סוד כי סלניום ו-JavaScript הולכים יד ביד, זו הייתה גם שפת השימוש העיקרית בגרסאות סלניום המוקדמות,  וגם אין זה סוד כי Java Script היא השפה המועדפת על דפדפנים כיום בשביל להתממשק ל-DOM של ה-HTML. זה אומר כי לדפדפנים מנועי JS פנימיים אשר יודעים לפרש את פקודות ה-JS שאנחנו (מפתחי המוצר) מספקים להם. אך […]

WebdriverCourse20

שיעור 20: עבודה עם Storage

בשיעור הקודם למדנו ממשק חשוב מאוד של סלניום, אולי החשוב מכולם, החיבור עם JavaScript. בשיעור זה נלמד דוגמא אחת מה ניתן לעשות עם הרצת JS בתוך קוד הסלניום שלנו. עבודה עם ה-Storage הוא נושא מאוד חשוב לבדיקות אוטומטיות וידניות בכלל. בעזרת storage מקומי , אפליקציות web מסוגלות לאגור נתונים מקומית על הדפדפן וחוסכת את התלות […]

WebdriverCourse21

שיעור 21: Robot Class

ממשק נוסף שנלמד בשיעור זה של סלניום הוא עם מחלקת ה-Robot . מחלקה זו היא מחלקת של ג'אווה והיא יודעת לדמות פעולות של משתמש דרך המקלדת. איך זה עוזר לנו ? בשיעור 8 – מעבר בין חלונות הצגתי בעיה המראה את המוגבלות של סלניום Webdriver לעבודה על חלונות הדפדפן בלבד. בואו ניקח דוגמא בה אני […]

WebdriverCourse22

שיעור 22: עבודה עם AutoIT

כפי שכבר ראינו בשיעור 8, עלולה להיווצר לנו בעיה כאשר נרצה לעבור לחולונות שאינם חלונות דפדפן, הסלניום לא ידע איך לאכול חלונות כאלו, ובכן בשיעור הקודם ראינו דרך אחת לפתור את העניין, וגם ברשימת הטיפים מופיעה עוד דרך, בשיעור זה נציע דרך נוספת והיא עבודה עם כלי חיצוני שנקרא – AutoIT. ה-AutoIT הינו כלי חינמי […]

WebdriverCourse23

שיעור 23: Data Driven Testing

שימו לב – בשיעור זה אשתמש בדוגמא שהשתמשתי בה בשיעור 16 – Page Obeject Model , וכך גם הקוד שלי יסתמך על הקוד בשיעור ההוא, מומלץ להבין קודם את העקרונות של שיעור 16 לפני שמתחילים לקרוא על שיעור זה. ה-Data Driven testing הוא סוג של טכניקת בדיקה בה אנו כתבים את החלק הלוגי בצורה גנרית […]