前言

很多的测试同学懂得使用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代码:

#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 = 'TAPD-敏捷开发 项目管理 腾讯敏捷产品研发平台'

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()

创建了一个测试交流群,如果对软件测试、接口测试、自动化测试、面试经验交流感兴趣可以加测试交流群(文章开头文章),还会有同行一起技术交流(欢迎大家进群)

we自动化po模式_Web自动化测试—PO设计模式(一)相关推荐

  1. Appium PO模式UI自动化测试框架——设计与实践

    阅读目录 1. 目的 2. 意义 3. 设计理念 4. PO模式 5. 框架设计 5.1 目录结构 5.2 实现步骤 5.3 具体实现 5.3.1 base部分 5.3.2 po部分 5.3.3 te ...

  2. selenium java po模式_selenium + java po模式

    po模式大概介绍,大家也可以自己百度看看 Page Object模式主要是将每个页面设计为一个类class,这个类包含页面中需要测试的元素(按钮.输入框.URL.标题等)和实际操作方法,这样在写测试用 ...

  3. Python+Selenium PO模式Web自动化测试实战

    1.项目结构 2.BASE层封装代码 # -- coding: UTF-8 -- import datetime import os from selenium.webdriver.support.s ...

  4. Appium自动化测试(五)——PO模式(一):短信案例

    PO模式:Page Object,PO模式是自动化测试项目开发实践的最佳设计模式之一. 核心思想:通过对界面元素的封装减少冗余代码,同时在后期维护中,若元素位置发生变化,只需要调整页面封装的代码,提高 ...

  5. 提升之路--从0开始学web自动化(7)--ui自动化框架搭建PO模式

    ui自动化测试在整个测试过程中占据的地位 在一个项目的测试中手工测试(60%)/自动化测试(40%),不同公司的定义不同.总体是手工占大部分 而自动化测试中,接口自动化占据70% ui自动化测试优先实 ...

  6. PO模式项目实战思路分析

    PO模式学习思路 采用版本迭代的方式来学习, 便于对不同版本的优缺点进行对比和理解         V1: 不使用任何设计模式和单元测试框架(线性模型)         V2: 采用测试框架,使用Un ...

  7. 阿里软件测试工程师手把手教学:自动化脚本中的设计模式-PO模式详解

    请点击输入图片描述(最多18字) 当我们以脚本的形式编写了大量的自动化测试代码后,很容易发现代码可读性太差了.任何一个测试脚本几乎毫无扩展能力或者说扩展起来只能修改边边角角.一旦被测系统的UI层发生变 ...

  8. 微信小程序UI自动化实践:python+minium+PO模式(超详细教程附源码供下载)

    文章目录 前言 一.minium介绍 二.安装环境 1. 安装minium doc 2. 安装minium 3. 启动小程序 三.准备知识 1. 启动 2. 配置 3. 命令行运行 4. 元素定位 5 ...

  9. 自动化测试如何保持登录状态_自动化测试po模式是什么?自动化测试po分层如何实现?-附详细源码...

    一.什么是PO模式 全称:page object model 简称:POM/PO PO模式最核心的思想是分层,实现松耦合!实现脚本重复使用,实现脚本易维护性! 主要分三层: 1.基础层BasePage ...

最新文章

  1. 数据集按类划分_用特别设计的损失处理非均衡数据
  2. element 0 of tensors does not require grad and does not have a grad_fn
  3. Replica Sets+Sharding方案之真枪实弹篇
  4. luogu P3786 萃香抱西瓜
  5. 启航篇——四旋翼飞行器之入坑两年心路历程和毕设总结
  6. 石河子大学计算机学院宿舍,对于那些想去211石河子大学的同学给你一点建议
  7. linux 列表看多个文件数量,查看linux默认能最多开启多少个文件数量
  8. 【Arthas】Arthas使用watch命令(生产上查看方法出入参)
  9. 微信小程序demo2
  10. 深入理解字符,字符集,gbk,utf8
  11. Leetcode 279 完美平方数
  12. 表格识别----基于模板的文字识别结果结构化处理技术
  13. 金融壹账通加马美国研究院“壹账通记忆增强网络”获对话系统学术竞赛佳绩...
  14. rpc调用 java_RPC调用的简单实现
  15. 华为asph是什么型号_华为手机各系列有什么区别 华为手机各系列介绍
  16. 【寻找最佳小程序】09期:轻芒杂志——杂志感设计,美美地阅读各领域杂志...
  17. 六、mysql性能优化
  18. Pandas之skew,求偏度
  19. LaTeX标点符号基础
  20. 五方面详细解析《商业银行互联网贷款管理暂行办法》

热门文章

  1. Java面试题集锦,Java常见面试问题汇总,有需要的小伙伴看过来
  2. tableau必知必会之通过 Tableau 计算挖掘数据真相
  3. 单变量线性回归程序实现
  4. JDK和SSH无密码配置
  5. python程序多次运行_[Python]在一段Python程序中使用多次事件循环
  6. Python入门100题 | 第057题
  7. python 判断目录和文件是否存在,若不存在即创建
  8. selenium教程
  9. LeetCode-链表-24. 两两交换链表中的节点
  10. 如何基于Redis Replication设计并实现Redis-replicator?