סלניום עם Python, חלק ב

בחלק א' של מדריך זה למדנו כיצד ניתן להוריד ולהתקין את פייתון , למדנו קצת על פקודות השפה דרך ה-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

זה יביא אותנו אל התוצאה:

Scroll to Top
דילוג לתוכן