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 二 ...
随机推荐
- 使用CGIHTTPServer搭建简单网站
目录 一.前提准备 二.搭建web网站 如何快速搭建web网站?这个问题对于我这样的小白来说简直就是一脸懵逼毫无头绪.在学习python的过程接触到了 CGI 编程,至于CGI是什么?怎么运行的?这我 ...
- Vue实现一个学生信息录入系统,实现录入和删除
效果如下: 代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...
- Delphi提取EXE,DLL文件图标
//uses ShellAPIprocedure TForm1.Button1Click(Sender: TObject);var IconIndex:Word; h:hICON;begin Icon ...
- NX二次开发-弹出选择文件夹对话框
这个UFUN和NOPEN里没有对应的函数和类,要用C++的方法去做. #include "afxdialogex.h"//弹出选择文件夹对话框头文件 #include " ...
- NX二次开发-创建经典工具栏UF_UI_create_toolbar
NX9+VS2012 1.打开D:\Program Files\Siemens\NX 9.0\UGII\menus\ug_main.men 找到装配和PMI,在中间加上一段 TOGGLE_BUTTON ...
- C++从string中删除所有的某个特定字符【转载】
转载自https://www.cnblogs.com/7z7chn/p/6341453.html C++中要从string中删除所有某个特定字符, 可用如下代码 str.erase(std::remo ...
- 3.2_springBoot2.1.x检索之JestClient操作ElasticSearch
这里介绍Jest方式交互, 导入jest版本 <!--导入jest--> <dependency> <groupId>io.searchbox</groupI ...
- HashMap底层实现原理及面试问题
①HashMap的工作原理 HashMap基于hashing原理,我们通过put()和get()方法储存和获取对象.当我们将键值对传递给put()方法时,它调用键对象的hashCode()方法来计算h ...
- 用CSS做导航菜单的4个理由
导航结构在网站设计中是起到决定性作用的,导航菜单/栏常常通过颜色.排版.形状和一些图片来帮助网站创造更好的视觉和感受,它是网页设计的关键元素.虽然网站导航菜单的外观是网页设计中关系到整个设计成败与否的 ...
- git提交流程简述
1.初始化:一个项目只执行一次 只要有.git隐藏文件夹就ok了 git init 或者 git clone url 2.为远程github仓库生成别名(remote-name就是远程仓库的别名)这一 ...