python3+selenium框架设计08-进一步实现POM
之前都是只有一个页面,一个用例。这次两个页面。两个测试用例。其实界面自动化测试最大的难点在于driver的传递,需要保持唯一性。另外就是断言的难点。
修改之前的BaiduPage,新增部分代码
from Selenium_lesson.framework.Base_Page import BasePage
class BaiduPage(BasePage):
kw = ['id','kw']#搜索输入框
su = ['id','su']#搜索按钮
new = ['link','新闻'] def type_kw(self,value):
self.type(self.kw,value) def click_su(self):
self.click(self.su) def click_new(self):
self.click(self.new)
在pageobject文件夹下新增baidu_new_page.py文件,代码如下。
from framework.Base_Page import BasePage
class NewPage(BasePage):
ww = ['id','ww']
wr = ['id','s_btn_wr'] def type_ww(self,value):
self.type(self.ww,value) def click_wr(self):
self.click(self.wr)
在testsuites文件夹下新增test_baidu_new.py文件。代码如下
import unittest
from framework.Base_Page import BasePage
from pageobject.baidu_new_page import NewPage
from pageobject.BaiduPage import BaiduPage
class test_baidu_new(unittest.TestCase):
'''百度新闻''' def setUp(self):
bro = BasePage(self)
self.driver = bro.open_browser() def test_new(self):
'''搜索selenium'''
baidu = BaiduPage(self.driver)
baidu.click_new()
new = NewPage(self.driver)
new.type_ww('selenium')
new.click_wr()
if __name__ == '__main__':
unittest.main()
在创建页面实例的时候,一定要把self.driver传进

我这边执行成功,打开了百度首页,点击新闻,跳转到了新闻页面,然后搜索了selenium。
python3+selenium框架设计08-进一步实现POM的更多相关文章
- python3+selenium框架设计02-自动化测试框架需要什么
什么是自动化测试框架 自动化测试框架能够提供便利给用户高效完成一些事情,比如,结构清晰开发脚本,多种方式.平台执行脚本,良好的日志和报告去跟踪脚本执行结果. 关于自动化测试框架的定义有很多,在我大致理 ...
- python3+selenium框架设计06-编写POM测试用例
之前我们已经把测试基类,配置文件操作,浏览器引擎类封装完成.接下来使用POM的设计思路来创建我们的测试用例.接下来看一个实例,先在项目下新建pageobject文件夹.这个文件夹下放所有要测试的页面类 ...
- python3+selenium框架设计01-Page Object
页面对象模型Page Object Modal是一种脚本设计模型,将页面元素,业务操作分割,当实际页面发生变化的时候,只需要修改页面元素文件,业务操作不需要修改. 具体实现需要先写一个页面公共类,里面 ...
- python3+selenium框架设计03-封装日志类
首先我们先来实现日志的功能,日志可以使用python3自带logging模块,不会的可以百度一下相关文章,也可以看我另外一篇文章Python3学习笔记24-logging模块 在封装日志类前,我们需要 ...
- python3+selenium框架设计10-发送邮件
使用python3的email模块和smtplib模块可以实现发送邮件的动能.email模块用来生成email,smtplib模块用来发送邮件,接下来看如何在生成测试报告之后,并将报告放在邮件附件中并 ...
- python3+selenium框架设计07-unittest单元测试框架
可以自行百度学习下单元测试框架,或者看Python3学习笔记26-unittest模块 在项目下新建一个entrance.py文件.并使用之前的测试用例进行演示.目前项目结构. 在entrance ...
- python3+selenium框架设计04-封装测试基类
在完成了日志类封装之后,那我们就要对测试基类进行实现,在其中对一些请求再次封装,在项目下新建一个framework文件夹,在文件夹下新建Base_Page.py文件,这是用来写测试基类的文件.在项目下 ...
- python3+selenium框架设计05-配置文件和浏览器引擎类
python3配置文件的增删改查等操作可以使用内置的ConfigParser模块,可以自行百度学习,也可以看Python3学习笔记27-ConfigParser模块 配置文件一般存放着环境信息,比如u ...
- python3+selenium框架设计09-生成测试报告
使用HTMLTestRunner可以生成测试报告.HTMLTestRunner是unittest模块下的一个拓展,原生的生成报告样式比较丑,GitHub上有大佬优化过后的版本:GitHub地址.下载之 ...
随机推荐
- java socket / No buffer space available
s https://www.cnblogs.com/yiwangzhibujian/p/7107785.html Socket用在哪呢,主要用在进程间,网络间通信. https://www.cnblo ...
- Java Web之HTML5
终于学到Java Web这一章节了,首先来了解一下HTML5的一些新知识点吧,我直接贴出HTML5代码看一下: <!DOCTYPE html> <html lang="en ...
- Spring+Mybatis+SpringMVC+Atomikos多数据源共存+不同数据库事物一致性处理
网上找了一大堆的例子,没一个跑通的,都是copy转发,哎,整理得好辛苦..做个笔记,方便正遇到此问题的猿们能够得到帮助....废话不多说,贴代码..... 项目结构说明: 1.dao层的admin.w ...
- Javascript的作用域和闭包(一)
一.作用域是什么? 几乎所有的编程语言最基本的功能之一,就是能够存储变量的值,并且能访问和修改这些值. 修改变量值的过程我们通常在程序执行时,称为改变一个对象的状态.有了状态,让程序变得有非常有趣. ...
- Openresty 学习笔记(二)Nginx Lua 正则表达式相关API
ngx.re.match 语法: captures, err = ngx.re.match(subject, regex, options?, ctx?, res_table?) 环境: init_w ...
- 在 CentOS6 上安装 Zabbix3.0 Agent 并开启客户端自动注册
#!/bin/bash # # .配置yum源 # cat /etc/redhat-release |grep -i centos |grep '6.[[:digit:]]' &>/de ...
- mysql驱动参数变化
在java平台使用的mysql jdbc驱动为:mysql-connector-java. 在项目中添加如下依赖: <dependency> <groupId>mysql< ...
- consul - 基础
=============================consul 是什么============================= consul 是 HashiCorp 公司推出的开源工具, 该 ...
- Linq中Sum和Group的使用
].AsEnumerable() group c by c.Field<int>("Name") into s select new { ID = s.Select(m ...
- python3.x与2.x区别
1.性能 Py3.0运行 pystone benchmark的速度比Py2.5慢30%.Guido认为Py3.0有极大的优化空间,在字符串和整形操作上可 以取得很好的优化结果. Py3.1性能比Py2 ...