event_listeners

Event Listeners

בפוסט זה אנו נבחן פונקציונליות של Selenium WebDriver הנותנת לנו את האפשרות לדווח ללוגים או לדוחות של תוצאות הריצה בצורה נקייה יותר. נחשוב על זה ככה, אנחנו מריצים כעת כמה מקרה בדיקה עם סלניום, מקרה הבדיקה הזה מכיל בתוכו כמה שלבים (Steps), כמו למשל: ניווט לאתר מסויים, הקלקה על כפתור, הזנת טקסט לתוך שדה וכו'. […]

automationCourse1

קורס אוטומציה פרונטלי עם Selenium Webdriver

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

sikuli

Sikuli Webdriver

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

Selenium

סלניום – Selenium

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

WebdriverCourse00

הארכיטקטורה של Selenium WebDriver

לפני שנלמד כיצד לעבוד עם סלניום Webdriver, חשוב שנדע איך הוא עובד וממה הוא בנוי . הארכיטקטורה של ה-Webdriver אינה דומה לזו הקודמת אותה הוא בא להחליף, ה-Remote Control. בזמן שהשני ניסה להשתלט על הדפדפן בעזרת JS מתוך הדפדפן, ה-Webdriver עושה זאת מחוץ לדפדפן בעזרת API. ישנן אפליקציות שונות שמשתמשות ב-API הזה, ה-Webdriver עושה זאת […]

WebdriverCourse01

שיעור 1: התקנה

את הקורס הזה נתחיל ללמוד בהתקנה והגדרה של ה-Selenium Webdriver. את הכלי הזה ניתן להתקין על מגוון רחב של סביבות – מערכות הפעלה שונות, IDE שונים, שפות תכנות שונות ועוד. בשיעור זה אדגים כיצד ניתן להתקין את הכלי בשתי סביבות אולי הפופולריות ביותר, האחת ב-NET. והשניה ב-Eclipse. התקנת Selenium WebDriver בסביבת NET. ועבודה עם #C […]

WebdriverCourse02

שיעור 2: הדפדפן

הדבר הראשון שנרצה לעשות בסלניום הוא לפתוח ולסגור את הדפדפן, לשם כך נצטרך להכיר את הפקודות השונות שמטפלות בדפדפן.   פונקצית ה-Get: תיאור: פונקציה הפותחת  דף חדש בדפדפן , מקבלת מחרוזת בה כתובת האתר אליו אנו רוצים לנווט דוגמא: driver.get("www.YoniFlenner.Net"); פונקצית ה-GetTitle: תיאור: פונקציה אשר מביאה את הערך של ה-title בעמוד שאנו נמצאים דוגמא: driver.getTitle(); […]

WebdriverCourse03

שיעור 3: זיהוי אלמנטים

לאחר פתיחת הדפדפן וניווט לדף עימו אנחנו נרצה לבדוק, כדאי לנו להכיר כעת את העבודה עם האלמנטים השונים בדף וכיצד אנו נזהה אותם. שתי פונקציות עיקריות בהן עובדים לזיהוי אלמנטים בדף הן: FindElement ו- FindElements. הראשונה מחזירה אובייקט של WebElement (זורקת Exception במידה ולא מצאה) והשנייה מחזירה רשימה של WebElements (מחזירה רשימה ריקה במידה ולא […]

WebdriverCourse04

שיעור 4: זיהוי אלמנטים מתקדם

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

WebdriverCourse05

שיעור 5: טיפול בפקדים

בשיעורים הקודמים ראינו כיצד ניתן לזהות אלמנטים על ה-DOM בדרכים שונות. כעת נלמד מה ניתן לעשות איתם לאחר הזיהוי, כיצד ניתן לטפל בהם. לכל פקד (אלמנט) יש דרך התמודדות שונה, אותה אנו נראה מיד.   Radio Button: הפקד הראשון ואולי הפשוט ביותר הוא כפתור הרדיו, כפי שניתן לראות בדוגמא כאן: כאשר הקוד שלו נראה כך: […]

WebdriverCourse06

שיעור 6: ניווט

בסלניום נוכל למצוא סט של פונקציות איתם נוכל לנווט בדפי האינטרנט של הדפדפן שלנו, נוכל לנוע קדימה ואחורה ולנווט למיקום ספציפי.   פונקצית ה-NevigateTo: תיאור: בפונקציה זו אנו נוכל לנווט לאתר מסויים ע"י הכנסת מחרוזת (כתובת) לפרמטר שהפונקציה מקבלת. למעשה אין הבדל בין פונקציה זו לבין driver.get שכבר ראינו בשיעור 2. דוגמא: driver.navigate().to("http://blog.YoniFlenner.net");   פונקצית […]

WebdriverCourse07

שיעור 7: המתנה

אחד היתרונות הגדולים באוטומציה הוא גם אחד החסרונות. המהירות. כולנו מסכימים שביצוע פעולות אוטומטיות בקצב מהיר זה טוב ויפה, אז איפה יכולה להיות בעיה ? במקרים בהם המערכת הנבדקת – System Under test איטית למשל בתעבורת הרשת (נגיד בין הקליינט לסרבר), או כשהיא מגיבה לאט, תוכל להיווצר לנו בעיה. פקודת ה-FindElement שלנו עלולה שלא למצוא […]