selenium基础(参数化脚本)
参数化脚本
什么是参数化
- 参数化就是用包含多组数据的参数列表,使之替换脚本中的响应常量值,这样,在脚本运行的时候,就会使用参数表中的数据来代替脚本中的常量值
- 由于参数表中包含了多组数据,所以执行用例时,会多次自动运行脚本,每次使用不同组的数据来代替脚本,这个运行次数就是参数表中的记录数,每执行一次测试,称为一个反复
三种参数化的方法
- 使用列表进行参数化
- 读取TXT文件中的数据,读取文本有三种方式
- read():读取整个文件
- readline():读取一行数据
- readlines():读取所有行的数据
user_file=open('test_data.txt','r')#以只读的方式打开test_data.txt文件,可标注文件路径或当文件和运行脚本在同一文件下时标注文件名称
lines=user_file.readlines()#读取文件中的所有行,以数组的形式进行保存
user_file.close()#关闭文件 #遍历在文件中取出的数组
for line in lines:
username=line.split(',')[0]#以逗号作为分隔符,取出数组中的第一个元素
password=line.split(','[1])#以逗号作为分隔符,取出同一数组中的第二个元素
print(username.password)- 获取CSV文件中的数据
import csv#引入CSV包
data=csv.reader(open('D:\\test\\login.csv','r'))#读取CSV文件并以只读的方式打开CSV文件 for line in data:
print(line[0], line[1])#line[0]即读取line中的第一列元素
例子:使用参数化的方式实现在百度页面中搜索不同的关键字
from selenium import webdriver
import time
keys=['selenium','自动化测试','性能测试','接口测试']
driver=webdriver.Firefox()
driver.get('https://www.baidu.com') for text in keys:
driver.find_element_by_xpath('//input[@id="kw"]').clear()
driver.find_element_by_xpath('//input[@id="kw"]').send_keys(text)
driver.find_element_by_id('su').click()
print(driver.title)
time.sleep(2)
driver.quit()
例子:以百度登录功能为例,使用读取txt文本的方式进行参数化
from selenium import webdriver
import time file_txt=open('D:\\test\\login.txt','r')
lines=file_txt.readlines()
file_txt.close() for line in lines:
username=line.split(',')[0]
password=line.split(',')[1]
print(username,password)
driver=webdriver.Firefox()
driver.get('http://www.baidu.com')
driver.find_element_by_link_text('登录').click()
time.sleep(2)
driver.find_element_by_id('TANGRAM__PSP_10__footerULoginBtn').click()
driver.find_element_by_name('userName').send_keys(username)
driver.find_element_by_name('password').send_keys(password)
driver.find_element_by_id('TANGRAM__PSP_10__memberPass').click()
driver.find_element_by_id('TANGRAM__PSP_10__submit').click()
time.sleep(2)
driver.quit()
例子:以百度登录功能为例,使用读取CSV文件的方式进行参数化
from selenium import webdriver
import time
import csv#引入CSV包
data=csv.reader(open('D:\\test\\login.csv','r'))#读取CSV文件并以只读的方式打开CSV文件 for line in data:
print(line[0], line[1])#line[0]即读取line中的第一列元素
driver=webdriver.Firefox()
driver.get('http://www.baidu.com')
driver.find_element_by_link_text('登录').click()
time.sleep(2)
driver.find_element_by_id('TANGRAM__PSP_10__footerULoginBtn').click()
driver.find_element_by_name('userName').send_keys(line[0])#引用CSV文件中第一列元素
driver.find_element_by_name('password').send_keys(line[1])#引用CSV文件中第一列元素
driver.find_element_by_id('TANGRAM__PSP_10__memberPass').click()
driver.find_element_by_id('TANGRAM__PSP_10__submit').click()
time.sleep(2)
driver.quit()
selenium基础(参数化脚本)的更多相关文章
- selenium基础(脚本模块化)
selenium基础(脚本模块化)
- web 自动化测试 selenium基础到应用(目录)
第一章 自动化测试前提及整体介绍 1-1功能测试和自动化测试的区别 1-2自动化测试流程有哪些 1-3自动化测试用例和手工用例的区别 1-4 自动化测试用例编写 1-5 selenium的优势以及 ...
- Python+Selenium基础入门及实践
Python+Selenium基础入门及实践 32018.08.29 11:21:52字数 3220阅读 23422 一.Selenium+Python环境搭建及配置 1.1 selenium 介绍 ...
- Selenium执行测试脚本稳定性的一些经验分享交流
Selenium执行测试脚本稳定性的一些经验分享交流 公司的自动化WEB测试框架IATA已上线运行了一段时间,期间发现一些脚本稳定性的问题,与大家分享一下. CASE执行游览器:ie firefox ...
- 【Python爬虫】selenium基础用法
selenium 基础用法 阅读目录 初识selenium 基本使用 查找元素 元素互交操作 执行JavaScript 获取元素信息 等待 前进后退 Cookies 选项卡管理 异常处理 初识sele ...
- Selenium | 基础入门 | 截屏并保存于本地
可先参考 Selenium | 基础入门 | 利用Xpath寻找用户框 核心代码: //截屏操作 File srcFile = ((TakesScreenshot)driver).getScree ...
- Selenium 进行参数化
Selenium参数化分为大小: 小:list.dict.函数 大:txt.excel.mysql.redis 哪种方式使自己的工作简单高效就选那种!!! Selenium进行参数化有多种形式: 本文 ...
- selenium基础-图形验证码
selenium基础-图形验证码 一.图形验证码作用 设计的初衷其实就是为了防自动化,防止一些人利用自动工具恶意攻击网站 二.图形验证码是由客户端生成还是由服务器端生成的? 图形验证码是由服务器端生成 ...
- selenium基础-跳过验证码
selenium基础-跳过验证码 一.方法 设置万能验证码或者屏蔽验证码(最常用的方法) 使用验证码识别工具识别验证码 通过selenium操作cookies 直接使用配置文件的webdriver 二 ...
随机推荐
- Download Blackarch Linux
https://www.blackarch.org/
- jQuery的两把利器
1 jQuery核心函数 * 简称: jQuery函数($/jQuery) * jQuery库向外直接暴露的就是$/jQuery * 引入jQuery库后, 直接使用$即可 * 当函数用: $(xxx ...
- HTML5表格(table)篇
初学HTML接触table少不了,但是实际应用的地方也有. 简单说明HTML <table> 标签 定义和用法 <table> 标签定义 HTML 表格. 简单的 HTML 表 ...
- bs4修改html文件和保存
一.需求 将2个html文件保存到本地浏览器,例如: A页面(我的博客主页) B页面(爬虫四大金刚) 然后将A页面中的爬虫链接,链接的a标签中的href属性修改成本地B页面的地址,实现在本地浏览A页面 ...
- NX二次开发-UF_OBJ_cycle_by_name遍历名字
使用前自己要看好名字是加在body,还是face,还是curve,或者其他,别加错了. NX9+VS2012 #include <uf.h> #include <uf_obj.h&g ...
- idea和eclipse快捷键对比(转)
分类 功能点 Eclipse快捷键 IDEA快捷键 搜索 搜索文本 Ctrl + F Ctrl + F Ctrl + R 查找替换 Alt + P/A 逐个/全部替换 Alt + F3 查找当前选中词 ...
- [JZOJ 5814] 树
题目:从u到v经过多少条边. 思路: 考虑他是怎么走的?? 从\(u\)到\(v\)一定是\(fa[u]\),\(fa[fa[u]]\),反正就是走\(LCA\),那么如果算出每个点到父亲的期望步数, ...
- hdu多校第九场 1002 (hdu6681) Rikka with Cake 树状数组维护区间和/离散化
题意: 在一块长方形蛋糕上切若干刀,每一刀都是从长方形某条边开始,垂直于这条边,但不切到对边,求把长方形切成了多少块. 题解: 块数=交点数+1 因为对于每个交点,唯一且不重复地对应着一块蛋糕. 就是 ...
- Keystone controller.py & routers.py代码解析
目录 目录 Keystone WSGI 实现 controllerspy routerspy 参考文档 Keystone WSGI 实现 Keystone 项目把每个功能都分到单独的目录下,EXAMP ...
- HDU1285-确定比赛名次-拓扑排序板子题
有N个比赛队(1<=N<=500),编号依次为1,2,3,....,N进行比赛,比赛结束后,裁判委员会要将所有参赛队伍从前往后依次排名,但现在裁判委员会不能直接获得每个队的比赛成绩,只知道 ...