selenium_appium

סלניום – אפיום, מה הסיפור ?

לאחרונה מסתובבת שמועה שגויה כי סלניום ואפיום הן שתי פלטפורמות כל כך שונות שעדיף לא ללמוד אותן ביחד.

בפוסט זה אני מעוניין להתייחס לטענה זו ולהפריך אותה לחלוטין.

 

קודם כל נתחיל ונסביר מהו Selenium WebDriver ?

אלו הן לא אחרות מאשר ספריות של קוד, או במילים אחרות – API. באו אנשים מוכשרים וכתבו לנו אוסף של פונקציות מאוגדות באוסף של מחלקות, תוך בנייה מסודרת של תכנות מכוון עצמים. מהן אותן פונקציות ? מה הן עושות ?

הן נותנות לנו את היכולת לבצע פעולות אוטומטיות על סוגים שונים של דפדפנים ע”י קריאה להן.

למשל, יש לנו את פונקציית ה-click , פונקציה זו יודעת ללחוץ על אלמנט בדף ה-HTML שלנו.

יש לנו גם פונקציה נוספת בשם: sendKeys שהיא פשוט שולחת מחרוזת של תווים לאותו אלמנט, כמו למשל שדה טקסט: User Name

כפי שאתם מבינים, עבודה עם Selenium מצריכה ידע בקידוד.

 

אז מה זה Appium ?

גם ה-Appium הן ספריות של קוד. ולא סתם, אלו הן ספריות קוד הבנויות מעל Selenium , או במילים אחרות – הרחבות של ספריות הקוד של Selenium.

ב-Appium אוכל לבצע פעולות נוספות שלא אוכל לבצען ב-Selenium, כמו למשל פעולת ה-Hide Keyboard (כי מן הסתם, לדפדפנים אין Keyboard)

ומבחינת הסינטקסט או ה-API ? זה בדיוק אותו הדבר.

למשל, אם ב-Selenium נרצה לזהות שדה טקסט ולהזין לתוכו מחרוזת של תווים , נשתמש למשל בפקודה הזו:

driver.findElement(By.id(“123”)).sendKeys(“Hello World”);

ואיך היינו מבצעים זאת ב-Appium ? היינו משתמשים בדיוק באותה הפקודה.

 

myadvSelenium16

 

אם אנחנו נסתכל בספריות הקוד של הפרוייקט, נראה שבפועל כולם מממשמים את ה-Interface שנקרא WebDriver , גם המחלקות שאנו עובדים איתן על דפדפנים (ChromeDriver, FirefoxDriver וכו’) וגם המחלקה עימה אנו עובדים על מכשירים (AppiumDriver) , כפי שניתן לראות כאן:

webdriver_interface

 

* זהו שרטוט מופשט. בפועל, ישנן עוד Interfaces באמצע להרחבת יכולות הפרוייקט.

 

ולסיום אני מעוניין להציג לכם את הסרטון הבא, בסרטון זה נראה דוגמא חיה לקריאה לפקודות Selenium ו-Appium באותו מקרה בדיקה:

 

כתיבת תגובה

האימייל לא יוצג באתר. (*) שדות חובה מסומנים

היי, אני לא רובוט *

תגי HTML מותרים: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">