Selenium

סלניום – Selenium

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

AutomationReflection

Reflection לבדיקות אוטומטיות

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

qtp1

איך באמת QTP עובד ?

אלו שיש להם נסיון עם QTP בעבר יודעים כי עבודה עם QTP = עבודה עם אובייקטים, ישנן 2 צורות עבודה עם אובייקטים בכלי: עבודה מול ה-Object Repository – בה האובייקט מוגדר לפני הריצה ונשמר במבנה נתונים פנימי של הכלי עבודה עם Descriptive Programing – בה אני מגדיר את האובייקט בזמן הריצה, בזמן זה הוא נשמר […]

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 שלנו עלולה שלא למצוא […]

WebdriverCourse08

שיעור 8: מעבר

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