一、什么是POM
POM page object model 页面对象模型 WEB自动化测试框架应用最为广泛的一种框架设计模式
设计思路:web项目由很多页面组成,把每个页面当做页面对象来进行设计
Python专题:什么是对象?通过类描述一组对象 对象=属性+方法
码尚电商项目=n个页面=登录页面=对每个页面设计对应页面类=相同属性+相同的方法
登录页面=对每个页面设计对应页面类=相同属性+相同的方法
class LoginPage:
#属性?元素、页面标题…
#方法?你在页面进行操作/行为:点击、定位、输入…等等元素及页面的操作
每个页面有相同的属性及方法 比如:点击、输入、元素定位
基于POM进行设计分为四层进行架构:
第一层 basepage层 每个页面有相同的属性及方法 比如:点击、输入、元素定位
第二层 pageobjects层 针对每个页面定义页面类 每个页面有独有的属性及方法
登录页面 LoginPage类
注册页面 RegisterPage类
第三层 TestCases层 用例层包含项目的业务流程
第四层 TestData 测试数据
二、如何基于POM进行自动化框架架构?
1、base层封装
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
class BasePage:
"""
BasePage:定义每个页面的相同属性及方法
相同属性?获取浏览器驱动对象(数据)
相同方法?元素定位、点击、输入...等等操作
"""
def __init__(self,driver=webdriver.Chrome()):
self.driver=driver
def 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 time
from selenium.webdriver.common.by import By
from class09.base.basepage import BasePage
class 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 unittest
from class09.pageobjects.webpage import LoginPage
class 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