Page Object
Page Object是Selenium自动化测试项目开发实践的最佳设计模式之一,通过对界面元素和功能模块的封装减少冗余代码,同时在后期维护中,若元素定位或功能模块发生变化,只需要调整页面元素或功能模块封装的代码,提高测试用例的可维护性。
BasePage.py
from time import sleep
class Page():
'''页面基础类'''
#初始化
def __init__(self, dirver):
self.base_url = 'http://www.uerb.net/login.php'
self.driver = dirver
# self.timeout = 10
#打开不同的子页面
def _open(self):
url_ = self.base_url
print(self.driver)
# self.driver.maximize_window()
self.driver.get(self.base_url)
# sleep(2)
# print(self.driver.current_url)
assert self.driver.current_url == url_, 'Did ont land on %s' % url_
def open(self):
self._open()
#元素定位方法封装
def find_element(self,*loc):
return self.driver.find_element(*loc)
LoginPage.py
from BasePage import *
from time import sleep
from selenium.webdriver.common.by import By
class LoginPage(Page):
'''首页登录页面'''
#定位器
username_loc=(By.NAME,'username3')
password_loc=(By.NAME,'password3')
login_loc =(By.LINK_TEXT,'用户登录')
submit_loc =(By.CLASS_NAME,'login-style-update')
search_loc =(By.CLASS_NAME,'s_btn')
keyword_loc =(By.NAME,'wd')
# 点击登录
def type_login(self):
self.find_element(*self.login_loc).click()
# 查询
def type_keyword(self,keyword):
self.find_element(*self.keyword_loc).clear()
self.find_element(*self.keyword_loc).send_keys(keyword)
# 点击登录
def type_search(self):
self.find_element(*self.search_loc).click()
#用户名输入框元素
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()
#登录功能模块封装
def test_user_login(driver, username, password, keyword):
'''测试用户名密码是否可以登录'''
login_page = LoginPage(driver)
login_page.open()
# login_page.type_keyword(keyword)
# login_page.type_search()
login_page.type_login()
# login_page.type_zmlogin()
sleep(4)
login_page.type_username(username)
login_page.type_password(password)
sleep(4)
login_page.type_submit()
sleep(10)
loin_test.py
from LoginPage import *
from selenium import webdriver
driver=webdriver.Chrome()
username = '*******'
password = '1'
keyword = '我'
test_user_login(driver, username, password, keyword)
driver.quit()