所谓的POM(Page Object Model)设计模式其实就是把一个页面当作一个对象,将一个页面中的所有元素及方法封装在一个java类中。
下面封装了3个页面的元素:
依次打开看看吧。
1、home_baidu.py
# -*- coding:utf-8 -*- from framework.basepage import BasePage class Home_Baidu(BasePage): news = u'新闻' hao123 = u'hao123' map = u'地图' vedio = u'视频' tieba = u'贴吧' def __init__(self, driver): # super(Home_Baidu, self).__init__(driver) self.driver = driver def news_ele(self): return self.find_link_text(self.news) def vedio_ele(self): return self.find_link_text(self.vedio) def click_news_ele(self): self.find_link_text(self.news).click() def click_vedio_ele(self): self.find_link_text(self.vedio).click()
2、news_page.py
# -*- coding:utf-8 -*- from framework.basepage import BasePage class News_Page(BasePage): news_input_id = 'ww' news_submit_id = 's_btn_wr' def __init__(self, driver): # super(News_Page, self).__init__(driver) self.driver = driver def news_input_ele(self): return self.find_id(self.news_input_id) def news_submit_ele(self): return self.find_id(self.news_submit_id)
3、vedio_page.py
# -*- coding:utf-8 -*- from framework.basepage import BasePage class Vedio_Page(BasePage): vedio_input_id = "new-bdvSearchInput" vedio_submit_id = "new-bdvSearchBtn" def __init__(self, driver): # super(Vedio_Page, self).__init__(driver) self.driver = driver def vedio_input_ele(self): return self.find_id(self.vedio_input_id) def vedio_submit_ele(self): return self.find_id(self.vedio_submit_id)可以发现这些类都继承了BasePage类使得可以使用BasePage类中二次封装的方法。