selenium-自动化用例(十一)
思路
将页面操作与用例case分别封装,编写case时就可以用同一个操作方法对应多个case
如下图:

PageGUI:存放页面操作方法,每个页面写一个文件,每个文件中写同一个页面不同的操作,例如检索、排序等
case:存放自动化用例,主要是引用PageGUI中封装的方法,传入不同的参数达到对应不同case的目的
以 博客园 后台登陆画面为例:

loginGUI.py
# coding = utf-8
from selenium import webdriver class loginGUI:
def login(self,driver,username,password,autoLogin_checkbox=None): # GUI中定位所需元素
dr = self.get_driver(driver)
username_element = dr.find_element_by_id('input1')
password_element = dr.find_element_by_id('input2')
autoLogin_checkbox_element = dr.find_element_by_id('remember_me')
login_btn = dr.find_element_by_id('signin') # 执行步骤
username_element.send_keys(username)
password_element.send_keys(password)
self.checkBox_operation(autoLogin_checkbox_element,autoLogin_checkbox)
login_btn.click() # 判断 下次自动登录 传的值是否正确
def checkBox_operation(self,autoLogin_checkbox_element,autoLogin_checkbox):
if autoLogin_checkbox == True:
if autoLogin_checkbox_element.is_selected() == False: # 判断是否被选中
return autoLogin_checkbox_element.click() elif autoLogin_checkbox == False or autoLogin_checkbox == None:
if autoLogin_checkbox_element.is_selected() == True: # 判断是否被选中
return autoLogin_checkbox_element.click()
else:
return None def get_driver(self,driver):
url= 'https://passport.cnblogs.com/user/signin' if driver == 'chrome':
driver = webdriver.Chrome()
elif driver == 'edge':
driver = webdriver.Edge()
else:
driver = webdriver.Safari() driver.get(url)
driver.implicitly_wait(10)
return driver
Testlogin.py
from PageGUI import loginGUI
import unittest
import time class TestCase(unittest.TestCase):
def test_login(self):
login = loginGUI()
login.login(driver='chrome',username='',password='',autoLogin_checkbox=1)
time.sleep(3) def test_login_usernameError(self):
pass def test_login_passwordError(self):
pass if __name__ == '__main__':
unittest.main()
以上只是对case的对应
更多的可以将 driver 、测试数据进行整理存放
原文发布在 软件羊皮卷 微信公众号中,欢迎大家关注

selenium-自动化用例(十一)的更多相关文章
- pytest文档30-功能用例与自动化用例完美对接(allure)
前言 做自动化做久了,经常会思考一个问题,到底别人是怎么做的自动化,跟自己的有啥不一样,看过不少书和资料,都是停留在demo的层面. 真正把自动化做的好的大牛又不屑于分享自己的劳动成果,所以大部分情况 ...
- Android UI自动化用例设计技巧
一.封装方法 1.编程如何越来越快: 首先,需要经验丰富,知识面广. 其次,每一个熟练编程的人员,都会有自己的一个库,解决各种问题.各种通用的方法函数. 同理,自动化脚本也是编程,测试用例则为需求,U ...
- 命令行运行Android Robotium自动化用例或单元测试用例
本文目录 1.运行所有的测试用例 2.运行单个测试类或某个TestSuite 3.运行某个测试类里面的某个测试方法 4.运行两个不同的测试类或类中的方法 命令行运行Android Robotium自动 ...
- 【UI】自动化用例设计技巧
需要封装的方法: 公共的操作方法 经常使用的步骤:超过两次以上 经常使用的组件:输入框.文本框.列表 经常操作的布局:多个组件组成通用的布局 经常操作的页面:ui页面由一个一个单独Activity组成 ...
- 【Golang】基于录制,自动生成go test接口自动化用例
背景 之前写过一篇博客,介绍怎么用Python通过解析抓包数据,完成自动化用例的编写.最近这段时间在使用go test,所以就在想能不能也使用代码来生成自动化用例,快速提升测试用例覆盖率.说干就干. ...
- 【Robot Framework 项目实战 04】基于录制,生成RF关键字及 自动化用例
背景 因为服务的迁移,Jira版本的更新,很多接口文档的维护变少,导致想要编写部分服务的自动化测试变得尤为麻烦,很多服务,尤其是客户端接口需要通过抓包的方式查询参数来编写自动化用例,但是过程中手工重复 ...
- 【Robot Framework 项目实战 03】使用脚本自动生成统一格式的RF自动化用例
背景 虽然大家都已经使用了统一的关键字,但是在检查了一些测试用例之后,还是发现因为大家对RF的熟悉程度不一导致的测试用例颗粒度差异很大的情况:而且在手动方式转化测试用例过程中,有不少工作是完全重复的且 ...
- 纯python自研接口自动化脚本更新版本,让小白也能实现0到1万+的接口自动化用例
查看完整文章点击原文链接:纯python自研接口自动化脚本更新版本,让小白也能实现0到1万+的接口自动化用例 你是否还在用postman\jmeter做接口自动化吗?用python的开源框架[unit ...
- python+pytest接口自动化(12)-自动化用例编写思路 (使用pytest编写一个测试脚本)
经过之前的学习铺垫,我们尝试着利用pytest框架编写一条接口自动化测试用例,来厘清接口自动化用例编写的思路. 我们在百度搜索天气查询,会出现如下图所示结果: 接下来,我们以该天气查询接口为例,编写接 ...
随机推荐
- Flutter 即学即用系列博客——05 StatelessWidget vs StatefulWidget
前言 上一篇我们对 Flutter UI 有了一个基本的了解. 这一篇我们通过自定义 Widget 来了解下如何写一个 Widget? 然而 Widget 有两个,StatelessWidget 和 ...
- spring boot 文件上传大小限制
错误信息 : Spring Boot:The field file exceeds its maximum permitted size of 1048576 bytes. 解决方法一:在启动类添加如 ...
- 设计模式之桥接模式——Java语言描述
桥接适用于把抽象化和实现化解耦,使得二者可以独立变化.这种类型的设计模式属于结构性模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦 这种模式设计到一个作为桥接的接口,使得实体类的功能独立 ...
- Android中资源的引用
R.java简单来说就是资源 R.java会自动收录当前应用中所有的资源,并根据这些资源建立对应的ID,包括:布局资源.控件资源.String资源.Drawable资源等 可以理解把所以资源按规则存放 ...
- PyCharm 如何远程连接服务器编写程序
写在前面 我之前一直通过mstsc远程服务器桌面修改代码,或者本地修改后上传到远程服务器等,各种不爽,现在改用xshell,但有时候还是感觉不方便.于是乎,自己动手配置PyCharm远程连接服务器,这 ...
- Windows Cluster 添加新节点--验证报错
今天给既有Windows Cluster 添加节点时,验证总是不通过.报错信息为 防火墙未正确配置为故障转移群集.现将处理步骤汇总如下. 1.错误具体信息 报错的位置 --[验证警告] 的步骤中发现错 ...
- golang 变量定义
package main import "fmt" var luckyNum = 6 var luckyStr = "love" //myNum := 6 // ...
- Active Directory 域服务安装与测试
Active Directory 域服务安装与测试 实验原理: 安装域服务并创建用户,把另一个电脑加入域中,然后用域账户登录以及用本地账户登录测试 实验条件:windows server 2008(域 ...
- Spring Cloud Eureka 注册中心集群搭建,Greenwich 最新版!
Spring Cloud 的注册中心可以由 Eureka.Consul.Zookeeper.ETCD 等来实现,这里推荐使用 Spring Cloud Eureka 来实现注册中心,它基于 Netfl ...
- 【Dubbo篇】--Dubbo框架的使用
一.前述 Dubbo是一种提供高性能,透明化的RPC框架.是阿里开源的一个框架. 官网地址:http://dubbo.io/ 二.架构 组件解释: Provider: 提供者.发布服务的项目.Regi ...