一、什么是POM
POM page object model 页面对象模型 WEB自动化测试框架应用最为广泛的一种框架设计模式
设计思路:web项目由很多页面组成,把每个页面当做页面对象来进行设计
Python专题:什么是对象?通过类描述一组对象 对象=属性+方法
码尚电商项目=n个页面=登录页面=对每个页面设计对应页面类=相同属性+相同的方法
登录页面=对每个页面设计对应页面类=相同属性+相同的方法
class LoginPage:
#属性?元素、页面标题…
#方法?你在页面进行操作/行为:点击、定位、输入…等等元素及页面的操作
每个页面有相同的属性及方法 比如:点击、输入、元素定位
基于POM进行设计分为四层进行架构:
第一层 basepage层 每个页面有相同的属性及方法 比如:点击、输入、元素定位
第二层 pageobjects层 针对每个页面定义页面类 每个页面有独有的属性及方法
登录页面 LoginPage类
注册页面 RegisterPage类
第三层 TestCases层 用例层包含项目的业务流程
第四层 TestData 测试数据
二、如何基于POM进行自动化框架架构?
1、base层封装
import timefrom selenium import webdriverfrom selenium.webdriver.common.by import Byclass BasePage:"""BasePage:定义每个页面的相同属性及方法相同属性?获取浏览器驱动对象(数据)相同方法?元素定位、点击、输入...等等操作"""def __init__(self,driver=webdriver.Chrome()):self.driver=driverdef locator(self,loc):"""元素定位"""# loc=(By.LINK_TEXT,"登录")# WebElement对象return self.driver.find_element(*loc)def input(self,loc,value):"""输入"""self.locator(loc).send_keys(value)def click(self,loc):"""点击"""self.locator(loc).click()def sleep(self,s):time.sleep(s)
2、pageobjects层封装
import timefrom selenium.webdriver.common.by import Byfrom class09.base.basepage import BasePageclass LoginPage(BasePage):"""登录页面类=页面独有的属性及方法页面独有的属性:页面元素定位方法:登录页面的操作"""#登录页面的属性el_username=(By.ID,"user_name")el_password=(By.ID, "password")el_login=(By.XPATH, "//input[@name='Submit']")url="http://47.107.116.139/shopnc/shop/index.php?act=login&op=index"#方法def login(self,usname,passwd):#实现登录的步骤self.driver.get(self.url)self.sleep(2)# 输入用户名self.input(loc=self.el_username,value=usname)# 输入密码self.input(loc=self.el_password,value=passwd)# 点击登录self.click(loc=self.el_login)time.sleep(2)class GoodlistPage(BasePage):pass
3、TestCases层封装
import unittestfrom class09.pageobjects.webpage import LoginPageclass TestLogin(unittest.TestCase):def test_login(self):# 实例化对象loginpage=LoginPage()username = "xingyao"password = "mashang"loginpage.login(username,password)
三、POM设计的意义?
本次的作业:
1、把线性脚本基于pom进行设计和封装
完成登录页面及页面列表页面的封装,覆盖登录及选择商品的封装
电商后台地址:http://47.107.116.139/shopnc/admin/index.php?act=login&op=login
电商商城地址:http://47.107.116.139/shopnc/shop/
商家管理系统
后台账号:admin 密码:msjy123
商家账号账号:mashang 密码:msjy123
会员账号
账号1及密码:admin msjy123
账号2及密码:xingyao mashang
