PO設計模式的思想是:頁面元素定位與操作分開;
一般把查找元素的操作放在BasePage文件中,對元素進行操作的代碼放在具體的case文件中;
一、先定義badidu_page.py文件
代碼如下:
class BasePage():
def find_id(self,id_key):
self.driver.find_element_by_id(id_key)
def find_name(self,name_key):
self.driver.find_element_by_name(name_key)
class BaiduPage(BasePage):
def __init__(self, driver):
self.driver = driver
def open(self, url):
self.driver.get(url)
def search_box(self, search_key):
self.driver.find_element_by_id("kw").send_keys(search_key)
def search_button(self):
self.driver.find_element_by_id("su").click()
二、調用badidu_page.py文件,並使用unittest編寫用例
from selenium import webdriver
from baidu_page import BaiduPage
import unittest
class BaiduTest(unittest.TestCase):
@classmethod
def setUpClass(cls) :#初始定義,setUpClass只需啟動一次瀏覽器即可
cls.driver = webdriver.Chrome()
cls.url = "https://www.baidu.com"
@classmethod
def tearDownClass(cls) :
cls.driver.quit()
def test_case_01(self):
page = BaiduPage(self.driver)#實例化badidu_page.py文件中的BaiduPage類
page.open(self.url)#調用BaiduPage類下的open方法,進行傳參url地址
page.search_box("selenium")#調用BaiduPage類下的search_box方法進行傳參搜索內容
page.search_button()#調用BaiduPage尖下的search_button方法
self.r = "01成功"
def test_case_02(self):
page = BaiduPage(self.driver)
page.open(self.url)
page.search_box("python")
page.search_button()
self.r = "02成功"
if __name__ == '__main__':
unittest.main()