sikuli

Sikuli Webdriver

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

nodeJSMochaChai2

סלניום עם ג'אווה סקריפט – חלק ב

בפוסט הקודם למדנו כיצד אנחנו מחברים כלים וספריות שונות למערכת בדיקות אחת שבתיאוריה יודעת לקרוא את הקוד ב-JS, לפרסס אותו ולהתממשק מול אלמנטים שעל הדפדפן. בחלק השני של הפוסט "נוכיח" תאוריה זו על ידי כתיבה והבנת הקוד. לפני שנתחיל לכתוב את הבדיקה הראשונה שלנו, בואו נראה את מה נבדוק. בכתובת הבאה: https://atidcollege.co.il/Xamples/bmi/ תוכלו לראות מחשבון BMI אשר […]

nodeJSMochaChai1

סלניום עם ג'אווה סקריפט – חלק א

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

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