בחלק א' של מדריך זה למדנו כיצד ניתן להוריד ולהתקין את פייתון , למדנו קצת על פקודות השפה דרך ה-Shell שהוא למעשה Command Line שמפרש את קוד השפה ופולט תוצאה, אח”כ למדנו כיצד להטמיע את הפלאג-אין של פייתון ב-Eclipse IDE שאנו כבר מכירים.
בחלק זה של המדריך נלמד לפתוח פרוייקט חדש של פייתון ב-Eclipse , נתקין דרכו את הסלניום , נראה כיצד אנחנו מתחילים לכתוב קוד סלניומי ב-IDE ונקנח עם תוכנית בדיקה ראשונה.
התקנת סלניום על פייתון
בשביל להתחיל עם סלניום ופייתון, תחילה נראה כיצד אנו פותחים פרוייקט חדש. לאחר שפתחתם את Eclipse , הקישו על File -> New , אם לא קיים לנו עדיין PyDev Project , נקיש על Other
ומשם נבחר את PyDev Project:
נקיש על NEXT ונבחר את הערכים הבאים:
נקיש על Finish ונאשר את ההודעה הבאה:
כעת הפרוייקט שלנו אמור להיראות כך ב-Package Explorer של ה-Eclipse:
בשביל להתקין את ספריות הסלניום בפרוייקט הפייתון שלנו , נפתח Command Line ונכניס את השורה הבאה:
C:\Python27\Scripts\pip.exe install selenium
אנו אמורים לראות את התוכנית מבצעת פעולות התקנה שבסיומה יזרק לנו למסך Successfully Installed Selenium:
כעת אנו צריכים לשייך את הספריות של סלניום שהורדנו אל הפרוייקט החדש שפתחנו, אז נסמן את הפרוייקט שלנו ב-Package Explorer , נקיש עליו עם המקש הימני של העכבר ונבחר את Properties , בחלון החדש נלך ל-PyDev – PYTHONPATH , נקיש על הטאב – External Libraries ונבחר לו את הנתיב: C:\Python27\Lib\site-packages
פעולה אוטומטית בסלניום ופייתון:
נכתוב כעת את הקוד הראשון שלנו, לשם כך נעבור שוב ל-Eclipse ונפתח מודול חדש בפייתון, נקיש על File -> New -> PyDev Module :
* – הModules בפייתון מגדירים גם Templates – מה שבעיקר יעניין אותנו
נכניס שם של Package ושם של Module (ה-Packege מכיל את ה-Module):
נקיש על Finish ובשלב זה נבחר את המודול – Main:
נוצר לנו קובץ חדש עם סיומת py
נרשום בו כעת את הקוד הסלניומי שלנו בפייתון , מקרה אוטומטי פשוט מאוד, ניכנס למנוע החיפוש של גוגל , נכניס ערך ונקיש על כפתור החיפוש:
from selenium import webdriver from selenium.webdriver.common.keys import Keys driver = webdriver.Firefox() driver.get("http://www.google.com") elem = driver.find_element_by_name("q") elem.send_keys("Yoni Flenner") elem.send_keys(Keys.RETURN) driver.close()
בדיקה אוטומטית בסלניום ופייתון
אוקיי, אז אנחנו יודעים לשרבב ב-IDE כמה פקודות לאטמט פעולות עם סלניום, השלב הבא יהיה לכתוב תוכנית הממחישה בדיקה תוך כדי שימוש בכלים הנהוגים בעולם הבדיקות האמיתי (מחלקות , אנוטציות , assets וכו’).
אז תחילה ניצור מודול חדש , כמו שיצרנו בשלב הקודם, רק שהפעם נבחר Template – Unittest
הקובץ החדש שנוצר לנו אמור להיראות כך:
אנו רואים כי ה-template כבר מכיל בתוכו חלוקה למקטעים של Unit Testing שאנו כבר מכירים בסלניום מסביבות אחרות. נשתמש באותו מקרה מהסעיף הקודם , רק שהפעם נכניס גם בדיקות:
ניכנס למנוע החיפוש של גוגל , נכניס ערך ונקיש על כפתור החיפוש, ונוודא כי מילה מסויימת אינה מופיעה בתוצאות דף החיפוש:
import unittest from selenium import webdriver from selenium.webdriver.common.keys import Keys class Test(unittest.TestCase): def setUp(self): self.driver = webdriver.Firefox() def tearDown(self): self.driver.quit() def testName(self): driver = self.driver driver.get("http://www.google.com") assert "Google" in driver.title elem = driver.find_element_by_name("q") elem.send_keys("Yoni Flenner") elem.send_keys(Keys.RETURN) assert "Kuku" not in driver.page_source
הטסט עבר בהצלחה (המילה Kuku לא נמצאה כשחיפשתי את שמי , תודה לאל 🙂 )
כעת בואו ננסה להכשיל את הטסט , על ידי שינוי ערך ה-Assert בסוף הבדיקה:
import unittest from selenium import webdriver from selenium.webdriver.common.keys import Keys class Test(unittest.TestCase): def setUp(self): self.driver = webdriver.Firefox() def tearDown(self): self.driver.quit() def testName(self): driver = self.driver driver.get("http://www.google.com") assert "Google" in driver.title elem = driver.find_element_by_name("q") elem.send_keys("Yoni Flenner") elem.send_keys(Keys.RETURN) assert "Yoni" not in driver.page_source
זה יביא אותנו אל התוצאה: