跟大家分享Python使用PageObject實現登錄,話不多說,直接上代碼:
1.BasePage:
#coding:utf-8 # @Time : 2019/5/19 21:16 # @Author : Jake Yu # @File : BasePage from time import sleep class BasePage(object): #初始化 def __init__(self, driver): self.driver = driver self.driver.maximize_window() self.base_url = '替換成自己的測試URL地址' self.timeout = 10 #打開不通的子頁面 def _open(self,url): url_ = self.base_url + url print("The url is %s" % url_) self.driver.get(url_) sleep(2) # assert self.driver.current_url == url_, 'Did not load on %s' % url_ def open(self): self._open(self.url) # 元素定位方法封裝 def find_element(self, *loc): return self.driver.find_element(*loc)
2.LoginPage
# -*- coding: gbk -*- # Name: LoginPage # Description: # Author: admin # Date: 2019/8/15 from page.BasePage import * from selenium.webdriver.common.by import By class LoginPage(BasePage): url = '/' # 定位器 username_loc = (By.ID, 'loginname') password_loc = (By.ID, 'password') submit_loc = (By.ID, 'to-recover') # 用戶名輸入框元素 def type_username(self, username): self.find_element(*self.username_loc).clear() self.find_element(*self.username_loc).send_keys(username) # 密碼輸入框元素 def type_password(self, password): self.find_element(*self.password_loc).clear() self.find_element(*self.password_loc).send_keys(password) # 登錄按鈕元素 def type_submit(self): self.find_element(*self.submit_loc).click() sleep(10) # 登錄功能模塊封裝 #def test_user_login(driver, searchValue, password): # '''測試用戶名密碼是否可用''' # login_page = LoginPage(driver) # login_page.open() # login_page.type_username(searchValue) # login_page.type_password(password) # login_page.type_submit() #登錄操作 def user_login(driver, searchValue, password): login_page = LoginPage(driver) login_page.open() login_page.type_username(searchValue) login_page.type_password(password) login_page.type_submit()
3.test_login測試用例
# -*- coding: gbk -*- # Name: test_login # Description: # Author: admin # Date: 2019/8/15 from page.LoginPage import * from selenium import webdriver import unittest from page.MainPage import * class Login02(unittest.TestCase): def testlogin(self): # driver = webdriver.Firefox() driver = webdriver.Chrome() searchValue = 'admin' password = 'admin1' LoginPage.user_login(driver, searchValue,password) sleep(3) # driver.quit()