WebdriverCourse08

שיעור 8: מעבר

בשיעור זה נלמד כיצד ניתן בעזרת סלניום לעבור בין חלונות הדפדפן שכוללים גם פריימים, טאבים ופופאפים. אך תחילה בואו נבין מה זה: window handle . בזמן שאנחנו יוצרים מופע (Instance) של Webdriver , למשל: driver = new FirefoxDriver(); מאחורי הקלעים סלניום מקצה מזהה ייחודי לכל חלון שפתוח בדפדפן (אותו אחד אליו קישרנו את ה-Driver, במקרה […]

WebdriverCourse09

שיעור 9: מציאת אלמנטים בדפדפן

בשיעורים הקודמים למדנו כיצד ניתן לזהות אלמנטים ב-DOM ואח"כ גם איך להפעיל עליהם מתודות, כמו click, sendkeys וכו'. כעת אנו נלך שלב אחד מוקדם יותר ונלמד כיצד אנו יכולים למצוא את האלמנטים ע"י הדפדפן בכדי להגדיר אותם בפונקציה , לדוגמא, כאשר אני רוצה להשתמש בפונקצית: WebElement element = driver.findElement(By.id("Username")); מניין לי לדעת כי ערך ה-ID […]

WebdriverCourse10

שיעור 10: טבלאות

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

WebdriverCourse11a

שיעור 11: חיבור לדפדפנים

לפני הופעת סלניום WebDriver אנשי האוטומציה הסתפקו בגרסתו המוקדמת יותר שנקראה – Selenium Remote Control אשר חייב את המשתמשים להתקין שרת שידבר עם הדפדפנים השונים. ה-WebDriver הביא איתו שינוי תשתיתי שזנח את אותו חיבור לשרת והביא לנו את היכולת לעבוד ישירות מל הדפדפנים בעזרת דרייברים. חיבור מסוג זה שיפר את ה-Performance של ההרצות בזכות העבודה […]

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 שאנחנו (מפתחי המוצר) מספקים להם. אך […]