Selenium Page Object 自动化测试框架-Page Object设计

本文介绍了使用Selenium的Page Object模式构建自动化测试框架。通过BasePage类封装基本页面操作,如find_element和send_keys,以及日志处理。然后分别展示了LoginPage、MainPage和RegistePage的实现,每个页面类继承BasePage并定义特定的元素定位和操作方法,如输入用户名、密码、点击按钮等。文章提供了具体的代码示例,便于理解和学习。
摘要由CSDN通过智能技术生成

pages

封装测试过程针对页面的操作方法,主要包括basepage、mainpage、loginpage、registepage等函数。pages目录创建时选择“Python Package”格式。

1.Basepage

BasePage是自定义页面基类,封装了基本的页面操作的方法,有find_element,send_keys 2个公共方法,具体的方法可根据测试需要进行扩展。

find_element:定位元素,识别测试页面中需驱动的元素。

Send_keys:发送键值,模拟键盘输入测试数据。

Logger = Logger(logger="BasePage").getlog()是产生一个共有日志类,在当前页面基类中调用。

from common.logger import Logger中表示导入框架中common文件夹下的logger模块。

我把多数代码加了注释,便于大家阅读学习。

具体代码如下:

from selenium import webdriver
#加载元素显示超时设置函数
from selenium.webdriver.support.wait import WebDriverWait
#导入截图函数
from common.cappic import Cappic
#加载预期处理函数
from selenium.webdriver.support import expected_conditions as EC
import time
import os.path
#导入日志处理函数
from common.loggen import Logger
logger = Logger(logger="BasePage").getlog()
#定义基础页面类文件,该类仅包含查找元素及输入数据两个子函数
class BasePage(object):
def __init__(self, driver, url):
self.driver = driver
self.base_url = url
#定义查找元素超时设置,当页面中某个元素在10秒内没有显示,则抛出异常,并在日志中记录
def find_element(self, *loc):
try:
# loc是表示属性元组本身,*loc表述属性元组的值,EC.visibility_of_element_located需要传入2个参数,但*loc是三个参数
# 因此,此处只能loc

WebDriverWait(self.driver, 10).until(EC.visibility_of_element_located(loc))
# 此处返回元素的属性及属性值,故使用*loc
return self.driver.find_element(*loc)
except:
#当元素找不到的时候调用截图函数
Cappic(self.driver)
#元素找不到时在日志中记录信息
http://logger.info(u"%s 页面中未能找到 %s 元素" % (self, loc))

def send_keys(self, loc, vaule,):
try:
#获取元素的属性值,以便于识别元素
loc = getattr(self, "_%s" % loc)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值