python実装オブジェクトモデル

8370 ワード

 1 # -*- coding:utf-8 -*-

 2 

 3 """

 4 python       

 5    bmicalcpage  

 6 """

 7 

 8 class bmicalcpage(object):

 9     def __init__(self, driver):

10         self._driver = driver

11         self._url = r'F:\   \selenium\Selenium Testing Tools Cookbook(  )\demo\BMICalculator.html'

12         self._title = 'BMI Calculator'

13         

14     @property

15     def is_loaded(self):

16         return self._driver.title == self._title

17     

18     @property

19     def bmi(self):

20         bmi_field = self._driver.find_element_by_id('bmi')

21         return bmi_field.get_attribute('value')

22     

23     @property

24     def bmi_category(self):

25         bmi_category_field = self._driver.find_element_by_id('bmi_category')

26         return bmi_category_field.get_attribute('value')

27     

28     def open(self):

29         self._driver.get(self._url)

30         

31     def calculate(self, height, weight):

32         height_field = self._driver.find_element_by_id('heightCMS')

33         weight_field = self._driver.find_element_by_id('weightKg')

34         calc_button = self._driver.find_element_by_id('Calculate')

35         

36         height_field.send_keys(height)

37         weight_field.send_keys(weight)

38         calc_button.click()

39         

40     def close(self):

41         self._driver.close()

 
 1 # -*-coding:utf-8 -*-

 2 """

 3    BMI      

 4 """

 5 from selenium import webdriver

 6 from BmiCalcPage import bmicalcpage

 7 import unittest

 8 

 9 class BmiCalcTest(unittest.TestCase):

10     def testCalc(self):

11         driver = webdriver.Firefox()

12         bmi_calc = bmicalcpage(driver)

13         bmi_calc.open()

14         

15         self.assertTrue(bmi_calc.is_loaded)

16         

17         bmi_calc.calculate('181', '80')

18         

19         self.assertEqual('24.4', bmi_calc.bmi)

20         self.assertEqual('Normal', bmi_calc.bmi_category)

21         bmi_calc.close()