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 二 ...
随机推荐
- 【转】Git 修改已提交的commit注释
https://www.jianshu.com/p/098d85a58bf1 [重点] 通过git rebase -i HEAD~2 你想修改哪条注释 就把哪条注释前面的pick换成edit git ...
- TopCoder[SRM587 DIV 1]:TriangleXor(550)
Problem Statement You are given an int W. There is a rectangle in the XY-plane with corners at ...
- clipboard.js实现页面内容复制到剪贴板
clipboard.js实现复制内容到剪切板,它不依靠flash以及其他框架,应用起来比较简单 <input type="text" name="copy_txt& ...
- DELPHI 让子窗体显示在任务栏上
重载 CreateParams 方法即可 声明: procedure CreateParams(var Params: TCreateParams);override; procedure TForm ...
- C语言中static用法介绍
C语言中static用法介绍 对于新手来说,很多东西的用法还不是很清楚,我们今天一起来看看C语言中static用法介绍 1.声明了static的变量称为静态变量,根据作用域的不同又分为 ...
- centos 根目录扩容
添加一块磁盘 参考上一篇博文VMware Workstation 添加磁盘 挂载目录(centos) 查看当前磁盘挂载情况 [root@node1 ~]# fdisk -l Disk /dev/sda ...
- spark入门到精通(后续开始学习)
早几年国内外研究者和业界比较关注的是在 Hadoop 平台上的并行化算法设计.然而, HadoopMapReduce 平台由于网络和磁盘读写开销大,难以高效地实现需要大量迭代计算的机器学习并行化算法. ...
- java程序——CPU过高100%及内存泄露排查
CPU过高 这类问题可以使用 top 命令观察一些,CPU 是不是都被 Java 程序占用了.比如下面这个截图: 服务器的 CPU 大多都被 Java 占用了.这正是我们之前生产上 CPU 过高的一个 ...
- Vmware Centos7 配置静态 ip 和 使宿主机和虚拟机互相 ping 通
NAT 方式1. 配置静态 ipVmware 安装 Centos7 可以参考 https://blog.csdn.net/guo_ridgepole/article/details/78973763 ...
- LightOJ 1341 - Aladdin and the Flying Carpet
题目链接:http://lightoj.com/volume_showproblem.php?problem=1341 题意:给你地毯面积和最小可能边的长度,让你求有几种组合的可能. 题解:这题就厉害 ...