Selenium之利用Excel实现参数化

说明:我是通过Workbook方式来读取excel文件的,这次以登陆界面为例
备注:使用Workbook读取excel文件,前提是excel需要2003版本,其他版本暂时不支持
 具体步骤:
第一步:新建一个excel文件,并且输入数据内容
第二步:在eclipse中新建一个java class,编写获取excel文件的代码
CODE:
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import jxl.Sheet;
import jxl.Workbook;
/*
* 获取Excel文件的内容,使用Workbook方式来读取excel
*/
public class ExcelWorkBook {
//利用list集合来存放数据,其类型为String
private List<string> list=new ArrayList</string><string>();
//通过Workbook方式来读取excel
Workbook book;
String username;
/*
* 获取excel文件第一列的值,这里取得值为username
*/
public List</string><string> readUsername(String sourceString) throws IOException,Exception{
List</string><string> userList = new ArrayList</string><string>();
try {
Workbook book =Workbook.getWorkbook(new File(sourceFile));
Sheet sheet=book.getSheet(0);
//获取文件的行数
int rows=sheet.getRows();
//获取文件的列数
int cols=sheet.getColumns();
//获取第一行的数据,一般第一行为属性值,所以这里可以忽略
String col1=sheet.getCell(0,0).getContents().trim();
String col2=sheet.getCell(1,0).getContents().trim();
System.out.println(col1+","+col2);
//把第一列的值放在userlist中
for(int z=1;z<rows ;z++){
String username=sheet.getCell(0,z).getContents();
userList.add(username);
}
} catch (Exception e) {
e.printStackTrace();
}
//把获取的值放回出去,方便调用
return userList;
}
/*
* 获取excel文件第二列的值,这里取得值为password
*/
public List<String> readPassword(String sourceString) throws IOException,Exception{
List<string> passList = new ArrayList</string><string>();
try {
Workbook book =Workbook.getWorkbook(new File(sourceFile));
Sheet sheet=book.getSheet(0);
int rows=sheet.getRows();
for(int z=1;z<rows ;z++){
String password=sheet.getCell(1,z).getContents();
passList.add(password);
}
} catch (Exception e) {
e.printStackTrace();
}
return passList;
}
public List<String> getList(){
return list;
}
}
第三步:新建一个TestNg Class,把excel数据填写到测试界面,具体代码如下:

CODE:
import java.io.File;
import java.util.List;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxProfile;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import File.ExcelWorkBook;
public class LoginCenter {
private WebDriver driver;
private String url;
String sourceFile="你文件的路径和文件名称";
@BeforeClass
public void testBefore(){
//设置firefox浏览器
FirefoxProfile file=new FirefoxProfile(new File("C:\\Users\\qinfei\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\t5ourl6s.selenium"));
driver=new FirefoxDriver(file);
url="你的测试地址";
}
@Test
public void login() throws Exception{
//初始化ExcelWorkBook Class
ExcelWorkBook excelbook=new ExcelWorkBook();
//进入到你的测试界面
driver.get(url);
driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS);
try{
//把取出的username放在userlist集合里面
List<string> userList=excelbook.readUsername(sourceFile);
//把取出的password放在passlist集合里面
List</string><string> passList=excelbook.readPassword(sourceFile);
//把取出来的值,输入到界面的输入框中
int usersize=userList.size();
for(int i=0;i<usersize ;i++){
//通过css定位到username输入框
WebElement username=driver.findElement(By.cssSelector("input[name=\"j_username\"]"));
//通过css定位到password输入框
WebElement password=driver.findElement(By.cssSelector("input[name=\"j_password\"]"));
//通过xpath定位登录按钮
WebElement submit=driver.findElement(By.xpath("//button//span[contains(text(),'登录')]"));
//清除username输入框的内容
username.clear();
//把list中数据一个一个的取出来
String name=userList.get(i);
//然后填写到username输入框
username.sendKeys(name);
for(int j=0;j<passList.size();j++){
password.clear();
String pass=passList.get(j);
password.sendKeys(pass);
}
//点击登录按钮
submit.click();
driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS);
//通过xpath定位登出按钮
WebElement logoutButton=driver.findElement(By.xpath("//button//span[contains(text(),'登出')]"));
logoutButton.click();
driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS);
}
}catch(Exception e){
e.printStackTrace();
}
}
}

Selenium之利用Excel实现参数化相关推荐

  1. python处理表格数据教程_python利用Excel读取和存储测试数据完成接口自动化教程...

    http_request2.py用于发起http请求 #读取多条测试用例 #1.导入requests模块 import requests #从 class_12_19.do_excel1导入read_ ...

  2. Excel:Excel使用技巧经验总结之(利用Excel自带功能统计各个字段不同类别及其个数并进行图表可视化+非编程实现)图文教程之详细攻略

    Excel:Excel使用技巧经验总结之(利用Excel自带功能统计各个字段不同类别及其个数并进行图表可视化+非编程实现)图文教程之详细攻略 目录 利用Excel自带筛选功能统计各个字段不同类别及其个 ...

  3. Excel:利用Excel内置功能实现对某列表格按照条件进行升降序排列

    Excel:利用Excel内置功能实现对某列表格按照条件进行升降序排列 目录 实现功能 实现方法 实现功能 利用Excel内置功能实现对某列表格按照设置条件进行升降序排列 实现方法

  4. 动态给a标签赋值_怎样利用Excel制作抖音上的心形动态函数图像?

    最近在抖音上看到有用Excel制作心形动态函数图像,感觉很新奇,闲来无事,准备自己动手做做,遂网上搜了教程,按照教程一步步做,前面都很顺利,但到最后一部确卡壳,问了公司Excel大牛也未找到原因,知道 ...

  5. 【视频教程】利用Excel轻松爬取网页上的数据

    说到从网上抓取数据,大多数人马上想到的就是Python,但是有的时候不用Python也可以搞定.今天给大家分享一篇如何利用Excel抓取网站上我们所需要的多页数据. 如抓取新浪财经股票页面中的2019 ...

  6. wps 模拟分析 规划求解_【网友来稿】利用Excel求解线性规划问题

    点击上方"运筹学小将",和小将一起学习运筹学把 提问 Qustions 解答 Answers 01 网友分享历年真题到公众号后台有现金收入吗? 没有. 02 分享历年真题到公众号后 ...

  7. 一个excel文档里复制黏贴另外表单跟着变动_利用Excel连接Power BI,实现PPT报告自动输出...

    ​文/HALI就职于汽车行业战略部门 专注汽车市场信息情报收集和分析 因为工作需要,每月周期性的更新数据和撰写PPT 报告成为繁重的劳动.结果是很多时间花费在数据处理上,真正的分析工作,往往只能草草收 ...

  8. b样条曲面绘制 opengl_CAD制图软件中如何利用EXCEL输入坐标绘制曲线?

    当在使用浩辰CAD制图软件绘制图纸的过程中,经常要绘制由多个坐标点连接成的曲线时,有什么方便快捷的方法吗?那当然是有的.利用EXCEL表格保存数据并与CAD制图软件巧妙地结合起来,就能很容易地画出曲线 ...

  9. 利用Excel VBA批量计算长时间序列植被物候动态阈值(逐像元)

    本文演示利用Excel VBA编程实现多期栅格数据,逐像元计算物候参数:生长季始期(SOS).生长季末期(EOS)和生长季长度(LOS),计算过程速度快! 说明: (1)利用Raster to Poi ...

  10. excel和python建模_利用Excel学习Python:准备篇

    写在前面 这个系列我们要利用Excel的知识,学会用python进行数据分析,如果你精通Excel想要用python提高数据分析效率,那么这个系列你来对了,如果你已经是python大神,想要建模/算法 ...

最新文章

  1. Unable to load the Wrapper's native library because none of the following files及解决方法
  2. 最简单的基于FFmpeg的AVfilter的例子-修正版
  3. spring框架mvc框架_Spring MVC测试框架入门–第2部分
  4. [Leedcode][JAVA][第11题][盛最多水的容器][双指针][贪心]
  5. [转]Paul Adams:为社交设计
  6. 深入了解Blazor组件
  7. debian安装ibus中文输入法
  8. dgl._ffi.base.DGLError: Cannot assign node feature “n_feat“ on device cuda:0 to a graph on device
  9. 日志打印,设置开关类【编程技巧】
  10. 查看windows下指定的端口是否开放
  11. SVN刷新不及时,要手动操作
  12. mapgis注释文字文件完整转换成arcgis格式注记shp 2019视频教程
  13. PHP读取PDF内容方法
  14. 奔图3305_奔图 Pantum P3305DN 驱动
  15. ADT下载地址(含各版本),最新ADT-23.0.6
  16. 当贝投影F5发布:3000ANSI流明亮度,6S疾速开机,16ms超低延迟
  17. 2018DeeCamp笔试题目第二套B卷
  18. Hologres数据迁移之holo-shipper
  19. Camera项目问题--第三方调用点击intent多次弹出问题
  20. 掌握常用传感器的工作原理应用技术-斯巴托(1)

热门文章

  1. 《超实用的HTML代码段》阅读笔记1——HTML5自动聚焦
  2. Delphi窗体部分属性
  3. 基于Visual C++2013拆解世界五百强面试题--题8-数组的排序和查找
  4. #pragma 是什么
  5. OBJECT_ID(Transact-Sql)
  6. JSONObject遍历
  7. mybatis 中collection中需要 open close separator
  8. Oracle的基本查询知识
  9. Appium基础四:Desired Capabilities详讲
  10. Ubuntu14.04如何启用界面root账户登录