PO模型的设计思路:
1.将每个页面的元素保存在ini文件中;
2.封装page页面定位元素方法;
3.封装handle页面操作方法;
4.组合handle and page,并断言页面提示信息和执行情况;
5.最后封装成可执行业务模块用例;
- 封装find_element方法
#coding=utf-8
class FindElement(object):
def __init__(self,driver):
self.driver = driver
=
def get_element(self,by):
try:
if by == 'id':
return self.driver.find_element_by_id(value)
elif by == 'name':
return self.driver.find_element_by_name(value)
elif by == 'className':
return self.driver.find_element_by_class_name(value)
else:
return self.driver.find_element_by_xpath(value)
except:
return None
- 封装page页面元素
from find_element import FIndElement
class RegisterPage:
def __init__(self,driver):
self.findelement_info = FindElement(driver)
#获取邮箱元素
def get_email_element(self):
return self.findelement_info.get_element("user_email")
#获取用户名元素
def get_username_element(self):
return self.findelement_info.get_element("user_name")
# 获取错误元素
def get_email_element_error(self):
pass
- 封装handle操作方法
#coding=utf-8
from register_page import RegisterPage
class RegisterHandle(object):
def __init__(self,driver):
self.driver = driver
self.register_page_info = RegisterPage(self.driver)
#输入邮箱
def send_user_email(self,email):
self.register_page_info.get_email_element().send_keys(email)
#输入用户名
def send_user_name(self,username):
self.register_page_info.get_username_element().send_keys(username)
#输入密码
def send_user_password(self,password):
self.register_page_info.get_password_element().send_keys(password)
具体设计思路:
page 主要是封装某一个页面获取页面元素的定位信息,其中分为两种,第一种是基本信息如邮箱元素,用户名元素,密码元素;第二种是页面元素提示信息,如用户名提示信息,邮箱提示信息,密码提示信息等等;
handle封装的是针对某个页面的所有执行操作方法
业务层组装handle层和page层组合采用数据驱动的方法;
在实际实现过程中,可以讲handle and page 层 合并在一起,在business层进行统一的调度处理;