seleniumRubyb

Selenium – Ruby, Part 2

בחלק א’ של מדריך זה למדנו להורדינ ולהתקין את רובי , למדנו קצת על פקודות השפה דרך ה-irb שהוא למעשה Command Line שמפרש את קוד השפה ופולט תוצאה, אח”כ למדנו כיצד להטמיע את הפלאג-אין של רובי ב-Eclipse IDE שאנו כבר מכירים.

בחלק זה של המדריך נלמד מושג חדש – Gems , נתקין דרכו את הסלניום , נראה כיצד אנחנו מתחילים לכתוב קוד סלניומי ב-IDE ונקנח עם תוכנית בדיקה ראשונה.

 

seleniumRuby1b

התקנת סלניום דרך Gems:

אז מהם ה-Gems למעשה ? ה-Gems הם הספריות שמתממשקות לסביבת הרובי, וה-Ruby Gems הוא מנהל הספריות והתוספים של רובי. למה אני צריך את זה ? כי דרך ה-Gems אני יכול להתקין את סלניום (או כל ספרייה אחרת אשר תומכת בשפה).

איך עושים זאת ? פשוט מאוד. דבר ראשון נכנס לאתר ה-Gems בכתובת: https://rubygems.org ונכניס בשורת החיפוש את הערך Selenium Webdriver, ישנן לא מעט ספריות והרחבות ל-Selenium Webdriver באתר ועוד יותר ספריות והרחבות ל-Selenium עצמו , בהזדמנות אולי אכתוב פוסט המתאר את כל אותן יכולות שניתן לעבוד איתן בסלניום עם רובי.

נקליק על התוצאה הראשונה שהיא כמובן הרלוונטית עבורנו – Selenium-Webdriver אפשר גם להבין זאת כאשר התוצאה הזו היא בעלת מספר ההורדות הרב ביותר (מעל ל-13 מיליון).

בצד ימין של המסך נראה שדה טקסט שמעליו רשום: INSTALL , נעתיק את הכתובת הרשומה שם:

ruby13

נחזור ל-Eclipse , שימו לב כי כעת (אחרי שביצענו בהצלחה את השלב הקודם – התקנת הפלאג-אין של Ruby) נוצרו לנו views חדשים ב-IDE , כמו זה ה-Terminal , נפתח אותו ונדביק אליו את הכתובת שהעתקנו קודם לכן, נקיש על ENTER ונמתין עד שהתקנת הסלניום תסתיים, המסך אמור להיראות כך:

ruby12

בשעה טובה התקנו את סלניום על רובי. בוא נתחיל קצת לקודד….

 

פעולה אוטומטית בסלניום עם רובי:

התוכנית הראשונה בסלניום שנכתוב כאן תהיה פשוטה מאוד, בתוכנית זו אנו נאטמט כמה תהליכים , כמו כניסה למנוע חיפוש , הכנסת ערך לשדה החיפוש והדפסת כותרת האתר (תוצאת החיפוש).

תחילה נצהיר שאנו עובדים עם חבילת הסלניום (או נכון יותר לומר כי נגדיר לתוכנית שלנו למצוא את הרפרנסים לעבודה עם ספריות הסלניום) כך:

require “selenium-webdriver”

הגדרת הדרייבר מול פיירפוקס היא מאוד פשוטה ונעשית כך:

driver = Selenium::WebDriver.for :firefox

הגדרת הדרייבר מול דפדפן הכרום מעט יותר מורכבת ומתבצעת כך:

chromedriver_path = File.join(File.absolute_path(”, File.dirname(“C://Projects/Selenium/Drivers”)),”Drivers”,”chromedriver.exe”)
puts chromedriver_path
Selenium::WebDriver::Chrome.driver_path = chromedriver_path
driver = Selenium::WebDriver.for :chrome

את שאר הפקודות אנו נוכל לזהות מיד, בסה”כ כשאנו מדברים על דומיין הסלניום – הסינטקס של רובי אינו שונה בהרבה מזה שאנו כבר מכירים מ-#C או JAVA , הנה דוגמת התוכנית המלאה:

התוצאה תהיה – Google כמובן

 

בדיקה אוטומטית בסלניום עם רובי:

אוקיי, אז אנחנו יודעים לשרבב ב-IDE כמה פקודות לאטמט פעולות עם סלניום, השלב הבא יהיה לכתוב תוכנית הממחישה בדיקה תוך כדי שימוש בכלים הנהוגים בעולם הבדיקות האמיתי (מחלקות , אנוטציות , assets וכו’).

בתוכנית הבאה אנו נבצע חיבור Login פשוט למערכת , נוודא כי נכנסנו לאתר ונבצע בסוף פעולת Logout

נגדיר תחילה מחלקה אשר יורשת ממחלקת האם – Test::Unit::TestCase ונעבוד בתוכה .

נגדיר גם אנוטציות SetUp ו-tearDown וכמובן -Test , התוכנית אמורה להיראות כך:

 

 

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

בהצלחה,

יוני