selenium-自動化用例(十一)

思路web

將頁面操做與用例case分別封裝,編寫case時就能夠用同一個操做方法對應多個casechrome

以下圖:微信

PageGUI:存放頁面操做方法,每一個頁面寫一個文件,每一個文件中寫同一個頁面不一樣的操做,例如檢索、排序等測試

case:存放自動化用例,主要是引用PageGUI中封裝的方法,傳入不一樣的參數達到對應不一樣case的目的url

 

以 博客園 後臺登錄畫面爲例:spa

 

 

loginGUI.pycode

 1 # coding = utf-8
 2 from selenium import webdriver  3 
 4 
 5 class loginGUI:  6     def login(self,driver,username,password,autoLogin_checkbox=None):  7 
 8         # GUI中定位所需元素
 9         dr = self.get_driver(driver) 10         username_element = dr.find_element_by_id('input1') 11         password_element = dr.find_element_by_id('input2') 12         autoLogin_checkbox_element = dr.find_element_by_id('remember_me') 13         login_btn = dr.find_element_by_id('signin') 14 
15         # 執行步驟
16  username_element.send_keys(username) 17  password_element.send_keys(password) 18  self.checkBox_operation(autoLogin_checkbox_element,autoLogin_checkbox) 19  login_btn.click() 20 
21     # 判斷 下次自動登陸 傳的值是否正確
22     def checkBox_operation(self,autoLogin_checkbox_element,autoLogin_checkbox): 23         if autoLogin_checkbox == True: 24             if autoLogin_checkbox_element.is_selected() == False:  # 判斷是否被選中
25                 return autoLogin_checkbox_element.click() 26 
27         elif autoLogin_checkbox == False or autoLogin_checkbox == None: 28             if autoLogin_checkbox_element.is_selected() == True:  # 判斷是否被選中
29                 return autoLogin_checkbox_element.click() 30         else: 31             return None 32 
33     def get_driver(self,driver): 34         url= 'https://passport.cnblogs.com/user/signin'
35 
36         if driver == 'chrome': 37             driver = webdriver.Chrome() 38         elif driver == 'edge': 39             driver = webdriver.Edge() 40         else: 41             driver = webdriver.Safari() 42 
43  driver.get(url) 44         driver.implicitly_wait(10) 45         return driver

 

Testlogin.pyblog

 1 from PageGUI import loginGUI  2 import unittest  3 import time  4 
 5 
 6 class TestCase(unittest.TestCase):  7     def test_login(self):  8         login = loginGUI()  9         login.login(driver='chrome',username='123',password='345',autoLogin_checkbox=1) 10         time.sleep(3) 11 
12     def test_login_usernameError(self): 13         pass
14 
15     def test_login_passwordError(self): 16         pass
17 
18 
19 if __name__ == '__main__': 20     unittest.main()

 

以上只是對case的對應排序

更多的能夠將 driver 、測試數據進行整理存放utf-8

 

原文發佈在 軟件羊皮卷 微信公衆號中,歡迎你們關注

相關文章
相關標籤/搜索