Web自动化测试—PO设计模式(一)
前言
很多的测试同学懂得使用selenium进行Web自动化测试,
但是不知道如何去写一个测试框架,或者说是一个容易维护的web自动化项目。
自己写一个最基本的web自动化测试框架需要会什么?
1. 语言基础,学到面向对象
2. 熟练使用selenium API (操作浏览器的方法)
3. 会使用基本的工具库,os,sys等
4. 一个测试框架 例如:unittest
5. page object设计模式
6. 熟悉html、css
目录结构
--pages
--__init__.py
--base_page.py
base_page.py
#coding:utf8
from selenium import webdriver
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
#所有页面类的基类,实质上是对selenium进行二次封装
class BasePage(object):
def __init__(self,driver,path=None):
self.driver = driver
# self.driver = webdriver.Chrome()
self.url = 'https://www.tapd.cn/'
self.time_out = 10
self.poll_frequency = 0.3
self.open_web_page(path)
self.driver.maximize_window()
def open_web_page(self,path):
if path != None:
url = self.url + path
else:
url = None
if url != None:
self.driver.get(url)
else:
pass
def wait(self,*locator):
WebDriverWait(self.driver,self.time_out,self.poll_frequency).until(EC.visibility_of_element_located(locator))
def wait_text(self,text=None,*locator):
WebDriverWait(self.driver,self.time_out,self.poll_frequency).until(EC.text_to_be_present_in_element((locator),text))
def wait_all(self,text=None,*locator):
if text == None:
self.wait(*locator)
else:
self.wait_text(text,*locator)
def by_css(self,css,text=None):
locator = (By.CSS_SELECTOR,css)
self.wait_all(text,*locator)
return self.driver.find_element(*locator)
if __name__ == '__main__':
driver = webdriver.Chrome()
test_base_page = BasePage(driver,'cloud_logins/login')
test_base_page.by_css('#username').send_keys('XXXXXX')
test_base_page.by_css('#password_input').send_keys('XXXXXX')
test_base_page.by_css('#tcloud_login_button').click()
Web自动化测试—PO设计模式(一)的更多相关文章
- Web自动化测试—PO设计模式(二)
PO设计模式要点一:页面类都继承于BasePage 目录结构 ui_auto_test --src --pages --__init__.py --base_page.py --login_page. ...
- Web自动化测试—PO设计模式(三)
test_case目录下面放你要执行的用例 目录结构 ui_auto_test --src --test_case --__init.py --test_login_case --pages --__ ...
- Web自动化测试框架-PO模式
Web自动化测试框架(WebTestFramework)是基于Selenium框架且采用PageObject设计模式进行二次开发形成的框架. 一.适用范围:传统Web功能自动化测试.H5功能自动化测试 ...
- selenium自动化测试框架之PO设计模式
面向对象的特性:封装.继承.多态.在自动化中一样适用,Selenium自动化测试中有一个名字常常被提及PageObject(思想与面向对象的特性相同),通过PO模式可以大大提高测试用例的维护效率. 传 ...
- web自动化测试中的PO模式(一)
1.PO模式的思想 原理: 将页面的元素定位和元素行为封装成一个page类 类的属性:元素的定位 类的行为:元素的操作 页面对象和测试用例分离 测试用例: 调用所需要页面对象中的行为,组成测试用例 测 ...
- Python Selenium设计模式 - PO设计模式
整理一下python selenium自动化测试实践中使用较多的po设计模式. 为什么要用PO 基于python selenium2开始开始ui自动化测试脚本的编写不是多么艰巨的任务.只需要定位到元素 ...
- 从手工测试转型web自动化测试继而转型成专门做自动化测试的学习路线。
在开始之前先自学两个工具商业web自动化测试工具请自学QTP:QTP的学习可以跳过,我是跳过了的.开源web自动化测试工具请自学Selenium:我当年是先学watir(耗时1周),再学seleniu ...
- 基于Python Selenium Unittest PO设计模式详解
本文章会讲述以下几个内容: 1.什么是PO设计模式(Page Object Model) 2.为什么要使用PO设计模式 3.使用PO设计模式要点 4.PO设计模式实例 1.什么是PO设计模式 (Pag ...
- Web自动化测试框架改进
Web自动化测试框架(WebTestFramework)是基于Selenium框架且采用PageObject设计模式进行二次开发形成的框架. 一.适用范围:传统Web功能自动化测试.H5功能自动化测试 ...
随机推荐
- HDU 1850 Being a Good Boy in Spring Festival(博弈·Nim游戏)
Being a Good Boy in Spring Festival Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32 ...
- [原创]java向word模板中填充数据(总结)
使用过PageOffice动态生成word文档的人都知道,PageOffice可以给word文档的指定位置进行填充,这里我们所说的指定位置在PageOffice的专业术语里面有两个概念,一个叫做数据区 ...
- L84
Hospital Noise May Disrupt Patient Improvement Many who need restorative rest the most might not be ...
- dead reckoning variation
Targeting A target is a structure of information that describes the state, and change of state, of a ...
- appium 特殊操作
一.触摸操作 1.driver.tap([坐标],持续点击时间) 除了定位到元素的点击外,也可以通过tab实现坐标的点击 driver.tap(driver.tap([(216,1776)], ...
- 【bzoj1232】[Usaco2008Nov]安慰奶牛cheer
问题描述 Farmer John变得非常懒,他不想再继续维护供奶牛之间供通行的道路.道路被用来连接N个牧场,牧场被连续地编号为1到N.每一个牧场都是一个奶牛的家.FJ计划除去P条道路中尽可能多的道路, ...
- vue之webpack+vuecli打包生成资源相对引用路径与背景图片的正确引用
问题描述 一般情况下,通过webpack+vue-cli默认打包的css.js等资源,路径都是绝对的 但当部署到带有文件夹的项目中,这种绝对路径就会出现问题,因为把配置的static文件夹当成了根路径 ...
- 手工创建ASM Disk Groups、为 ASM Disk Groups 添加 disk
Groups 添加 disk 创建语法说明: 必选参数: (1) 指定disk group 的唯一名称 (不分区大小写) (2) 指定disk group 的冗余级别对于ASM 的镜像冗余,可以指定3 ...
- C# 性能分析工具
http://msdn.microsoft.com/zh-cn/vstudio/aa497289(en-us).aspx Performance This section includes infor ...
- POJ2387(最短路入门)
Til the Cows Come Home Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 38556 Accepted ...