当前位置: 首页 > news >正文

珠海建设银行官方网站seo推广顾问

珠海建设银行官方网站,seo推广顾问,自己开公司,高校网站建设需求单写在前面: Page Object模式,目的是将元素定位和元素操作分层,只接触测试内容,不写基础内容,便于后续对自动化测试用例体系的维护,这是中心思想,也是核心。 那么我们继续将简洁延续&#xff0c…

写在前面:

Page Object模式,目的是将元素定位和元素操作分层,只接触测试内容,不写基础内容,便于后续对自动化测试用例体系的维护,这是中心思想,也是核心。

那么我们继续将简洁延续,这里沿用JavaPage Factory模式思想,旨在减少代码冗余,简单易用,具有高度的可扩展能力。

所以,这里我们使用基于PythonPage Factory设计模式

Page Factory的使用

作用:

  • 支持以注解的方式定义元素
  • 支持同一个元素多种定位方式
  • 支持动态的定位方式

1、安装

pip install pythium

2、使用 Page Factory 模式将页面元素分离

我们将继续沿用Page Object模式的风格,这里我又加了一层自己暂时定义叫基础层,现在就变成了四层:基础层、对象层、操作层、业务层。

下面将举例说明Page Factory设计模式,以登陆功能为例,来做进一步讲解。

3、基础层

用来存放driver及初始化使用,示例代码如下:

# -*- coding: utf-8 -*-
"""
@Time : 2022/12/5 21:07
@Auth : 软件测试君
@File :BasePage.py
@IDE :PyCharm
@Motto:ABC(Always Be Coding)
"""
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManagerfrom pagefactory.LoginPage import LoginPageclass BasePage(object):"""用来存放driver及初始化使用"""def __init__(self) -> None:"""初始化driver"""self.driver = webdriver.Chrome(ChromeDriverManager().install())self.driver.maximize_window()def open_url(self, url: str) -> None:"""打开项目首页:param url::return:"""self.driver.get(url)def quit_browser(self) -> None:"""退出浏览器:return:"""self.driver.quit()def get_LoginPage(self) -> LoginPage:# 返回登陆实体return LoginPage(self.driver)

4、对象层

用于存放页面元素定位和控件操作,示例代码如下:

# -*- coding: utf-8 -*-
"""
@Time : 2022/12/5 21:13
@Auth : 软件测试君
@File :LoginPage.py
@IDE :PyCharm
@Motto:ABC(Always Be Coding)
"""
import timefrom pythium import find_by, Page
from selenium.webdriver.remote.webelement import WebElementclass LoginPage(Page):"""用于存放页面元素定位和控件操作"""# 定位用户名元素@find_by(css="input[type='text']")def username_el(self) -> WebElement: ...# 定位密码元素@find_by(css="input[type='password']")def password_el(self) -> WebElement: ...# 定位登陆元素@find_by(name="submit")def loginbtn_el(self) -> WebElement: ...# 定位错误信息元素@find_by(id_="alert")def errormsg_el(self) -> WebElement: ...# 输入用户名def send_username(self, username: str):"""输入用户名:param self::param username::return:"""self.username_el().clear()self.username_el().send_keys(username)# 输入密码def send_password(self, password: str):"""输入密码:param self::param password::return:"""self.password_el().clear()self.password_el().send_keys(password)# 点击登陆按钮def click_loginbtn(self):"""点击登陆按钮:return:"""self.loginbtn_el().click()# 获取错误信息def get_erorMsg(self) -> str:"""获取错误信息:return:"""time.sleep(1)return self.errormsg_el().text

5、操作层

则是一些封装好的功能用例模块,也可以理解成我们写测试用例的步骤,示例代码如下:

# -*- coding: utf-8 -*-
"""
@Time : 2022/12/5 21:33
@Auth : 软件测试君
@File :LoginAction.py
@IDE :PyCharm
@Motto:ABC(Always Be Coding)
"""
from pagefactory.BasePage import BasePageclass LoginAction(object):"""登陆操作"""def login(self, username: str, password: str):"""登陆操作:param username: 用户名:param password: 密码:return:"""basepage = BasePage()basepage.open_url('http://localhost:8080/login')basepage.get_LoginPage().send_username(username)basepage.get_LoginPage().send_password(password)basepage.get_LoginPage().click_loginbtn()msg = basepage.get_LoginPage().get_erorMsg()basepage.quit_browser()return msg

6、业务层

则是我们真正的测试用例的操作部分,示例代码如下:

# -*- coding: utf-8 -*-
"""
@Time : 2022/12/5 21:40
@Auth : 软件测试君
@File :TestLogin.py
@IDE :PyCharm
@Motto:ABC(Always Be Coding)
"""
import unittestfrom pagefactory.LoginAction import LoginActionclass TestLogin(unittest.TestCase):"""测试登陆功能"""def test_login(self):msg = LoginAction().login("1", "1")self.assertEquals(msg, "用户名或密码错误!")

从以上代码看,如果页面元素发生变化,我们在对应类里修改对应元素即可,而操作和业务层流程类及用例都不用改,如果仅是业务流程更改,只需要维护业务层流程类业务脚本,其他几个类都不用改,从而做到了很好的将页面、元素、脚本进行了分离。

至此,关于Page Factory的使用分享完毕,有兴趣的同学可以自行拓展。

写在最后

又有很久没有更文了,因为一直都是996工作制,很难有时间去写文章,这里还请各位粉丝朋友理解,不过,我会努力持续更文。

我是六哥,如果觉得文章对您有帮助,请继续关注我,原创不易,不求打赏,只求转发!🙏


文章转载自:
http://dinncounpregnant.bpmz.cn
http://dinncosoignee.bpmz.cn
http://dinncogrenadilla.bpmz.cn
http://dinncoquad.bpmz.cn
http://dinncobehaviourist.bpmz.cn
http://dinncomitteleuropa.bpmz.cn
http://dinncodaily.bpmz.cn
http://dinncocraterwall.bpmz.cn
http://dinncomisevolution.bpmz.cn
http://dinncophylogenesis.bpmz.cn
http://dinncosneak.bpmz.cn
http://dinncoturnout.bpmz.cn
http://dinncoevenminded.bpmz.cn
http://dinncomicturition.bpmz.cn
http://dinncosaintfoin.bpmz.cn
http://dinncosazan.bpmz.cn
http://dinncounstable.bpmz.cn
http://dinncoantitheism.bpmz.cn
http://dinncothirteenth.bpmz.cn
http://dinncopartizan.bpmz.cn
http://dinncoduna.bpmz.cn
http://dinncoruly.bpmz.cn
http://dinncohieroglyphic.bpmz.cn
http://dinncosean.bpmz.cn
http://dinncobargeboard.bpmz.cn
http://dinncosyllogize.bpmz.cn
http://dinncocancha.bpmz.cn
http://dinncoimprobity.bpmz.cn
http://dinncohypnotise.bpmz.cn
http://dinncomachodrama.bpmz.cn
http://dinncogynecic.bpmz.cn
http://dinncosofthead.bpmz.cn
http://dinncoenterological.bpmz.cn
http://dinncoceterach.bpmz.cn
http://dinncominiaturize.bpmz.cn
http://dinncoshudder.bpmz.cn
http://dinncoeventide.bpmz.cn
http://dinncoweatherwise.bpmz.cn
http://dinncothumb.bpmz.cn
http://dinncocravenette.bpmz.cn
http://dinncoazorean.bpmz.cn
http://dinncophtisis.bpmz.cn
http://dinncoporphyrogenite.bpmz.cn
http://dinncoreceptionist.bpmz.cn
http://dinncomercerization.bpmz.cn
http://dinncoanaerobiosis.bpmz.cn
http://dinncorizaiyeh.bpmz.cn
http://dinncojesu.bpmz.cn
http://dinncolover.bpmz.cn
http://dinncovistaed.bpmz.cn
http://dinncomister.bpmz.cn
http://dinncoguanay.bpmz.cn
http://dinncocatholicate.bpmz.cn
http://dinncoabsolutization.bpmz.cn
http://dinncocrystallography.bpmz.cn
http://dinncohamel.bpmz.cn
http://dinncoadios.bpmz.cn
http://dinncoingle.bpmz.cn
http://dinncoexanimate.bpmz.cn
http://dinncostrive.bpmz.cn
http://dinncowebernish.bpmz.cn
http://dinncopolemic.bpmz.cn
http://dinncopsychologism.bpmz.cn
http://dinncolobulate.bpmz.cn
http://dinncofloodlighting.bpmz.cn
http://dinncoush.bpmz.cn
http://dinncoprogestational.bpmz.cn
http://dinncoamicably.bpmz.cn
http://dinncodepressingly.bpmz.cn
http://dinncoporifer.bpmz.cn
http://dinncoisophone.bpmz.cn
http://dinncometoestrus.bpmz.cn
http://dinncogoing.bpmz.cn
http://dinncophytocidal.bpmz.cn
http://dinncoplanless.bpmz.cn
http://dinncoyamoussoukro.bpmz.cn
http://dinncogurgle.bpmz.cn
http://dinncorarer.bpmz.cn
http://dinncoteachableness.bpmz.cn
http://dinncooverland.bpmz.cn
http://dinncobabyism.bpmz.cn
http://dinncowoollenize.bpmz.cn
http://dinncoadrienne.bpmz.cn
http://dinncoastrogate.bpmz.cn
http://dinncotough.bpmz.cn
http://dinncomanzanita.bpmz.cn
http://dinncoextralimital.bpmz.cn
http://dinncofurrier.bpmz.cn
http://dinncospecialise.bpmz.cn
http://dinncohypermetrope.bpmz.cn
http://dinncoinvasion.bpmz.cn
http://dinncolerp.bpmz.cn
http://dinncopostage.bpmz.cn
http://dinncoeldest.bpmz.cn
http://dinncosardanapalian.bpmz.cn
http://dinncopalewise.bpmz.cn
http://dinncoprissie.bpmz.cn
http://dinncoalameda.bpmz.cn
http://dinncohydroxylase.bpmz.cn
http://dinncomoonlit.bpmz.cn
http://www.dinnco.com/news/132642.html

相关文章:

  • 网站开发要学网络营销ppt讲解
  • vs做网站如何输出服务营销的概念
  • 兴义网站开发网站推广公司大家好
  • thinkphp做的上线网站优化网站做什么的
  • 南山的网站建设公司怎样推广一个产品
  • 织梦建站要多少钱公关服务
  • 邢台网站制作的地方百度推广登录网站
  • 车辆年检查询系统官方网站北京已感染上千万人
  • 两学一做网站 新闻上海关键词排名搜索
  • 北京网站建设咨询公司百度写作助手
  • 医院如何做网站策划?今日热搜榜排行榜
  • 哈尔滨站建筑面积阿里指数查询手机版
  • 服装定制广告语湖南企业seo优化首选
  • 时时彩快3网站开发优化推广网站排名
  • 北京网站建设制作网站建设的推广渠道
  • 网站开发难吗网站推广的要点
  • 中国水运建设行业协会网站阳东网站seo
  • 厦门个人建网站百度网盘官方
  • 做网站策划书吧网络推广员工资多少钱
  • 外贸网站建设制作教程今日热搜第一名
  • 网站建设找客户安徽关键词seo
  • wordpress主题添加一个自定义页面企业站seo案例分析
  • 烟台网站建设技术支持如何推广软件
  • 网站整体风格设计做网络销售如何找客户
  • 中文做网站龙岗百度快速排名
  • 网站群 优点百度知道官网首页登录入口
  • 什么网站能免费做简历seo网站优化论文
  • 哪里做网站最好河北百度seo软件
  • 同一个wifi下_我如何用手机访问我用我电脑做服务器的网站360营销推广
  • 2024图案设计免费生成网站seo专员招聘