Selenium之利用Excel实现参数化

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();

}

}

}

时间: 2024-10-13 00:52:11

Selenium之利用Excel实现参数化的相关文章

Selenium——selenium之利用excel实现参数化

说明:我是通过Workbook方式来读取excel文件的,这次以登陆界面为例 备注:使用Workbook读取excel文件,前提是excel需要2003版本,其他版本暂时不支持 具体步骤: 第一步:新建一个excel文件,并且输入数据内容 第二步:在eclipse中新建一个java class,编写获取excel文件的代码 import java.io.File; import java.io.IOException; import java.util.ArrayList; import jav

【提问答疑】Selenium + Python的Excel数据参数化

背景 最近一段时间微信公众号得到了众多网友的留言,微信编辑部的小编们欣喜若狂,在此感谢各位小伙伴们的厚爱.为了与大家进行互动交流,小编认真地查看每一条小伙伴们的留言,有问Fiddler抓包工具的问题,有问自动化selenium的问题,当然还有问小剪子去哪儿了,O(∩_∩)O~.小编决定这期的文章挑一个自动化方面大家都比较关心的问题进行解答: 问: Python 获取到Excel一列值后怎么用selenium录制的脚本中参数化,比如对登录用户名和密码如何做参数化? 答:可以使用xlrd读取Exce

利用Excel漏洞来破解Excel保护工作表密码

本次实验是利用Excel改后辍成为压缩文件的漏洞来破解Excel保护工作表密码 首先我们建立一个Excel表格然后设置Excel保护工作表密码并另存为 确定密码已经生效 重命名Excel文件后辍.zip 解压已经改好后辍的Excel文件 解压好后会出现4个文件 打开xl后会看到worksheet文件夹 打开后会开到sheet1.xml就是我们设置保护密码的Excel的第一页 使用Adobe Dreamweavr来破解密码 打开Adobe Dreamweavr并且打开sheet1.xml文件 找到

如何利用excel中的数据源制作数据地图

关于这个问题,制作数据地图的方法已不新奇,总体来说有这么几类方案: 一类方案:直接在excel里制作 优势:个人小数据量应用较为方便简单 缺点:需要熟悉VBA,且更强大的功能对VBA水平要求较高 1.绘制地图图形 + VBA宏语言 思路:用插入图形"任意多边形"绘制地图:每一个"任意多边形"赋予正确名称:对"任意多边形"赋值:利用VBA对"任意多边形"的值进行操作, 例如上色. 先准备一张所需要的地图图片,网上都有,可以下载

利用Excel批量高速发送电子邮件

利用Excel批量高速发送电子邮件,分两步: 1. 准备待发送的数据: a.) 打开Excel,新建Book1.xlsx b.) 填入以下的内容, 第一列:接收人,第二列:邮件标题,第三列:正文,第四列:附件路径 注意:附件路径中能够有中文,可是不能有空格 这里你能够写很多其它内容,每一行作为一封邮件发出. 注意:邮件正文是黑白文本内容,不支持加粗.字体颜色等.(假设你须要支持彩色的邮件,后面将会给出解决的方法) 2. 编写宏发送邮件 a.) Alt + F11 打开宏编辑器,菜单中选:插入->

利用EXCEL自动统计实验结果的准确率

我们在做的实验的时候,通常都需要计算实验结果的准确率.当时数据量较大时,依靠人工来计算是不现实的,不仅十分慢而极易出错.如果我们事先将实验结果文件进行合理的格式化,则可以利用EXCEL自动进行统计,不仅效率高,也不担心出错了.简单地,利用EXCEL中的自动筛选或分类汇总功能也可实现一些统计,但是当数据量特别大时,分类汇总很卡,易导致崩溃,而且功能单一,不能灵活组合:而自动筛选则需要不停地滚来滚去或不断地切换表,也十分不方便.所以我考虑自己写程序来实现统计,这样便于对统计数据进行任意操作,比如移动

利用excel VBA进行自动化数据分析,数据汇总,网页表单自动提交等功能

在制造业公司的生产管理,经营管理,采购管理,财务管理等工作中,都有大量的数据处理的任务,通过繁复的excel手工运算获取结果.通过员工培训和自我提升,掌握和使用excel数组公式和VBA自动化,能为员工节省巨大的时间和精力,提高工作附加值.同时作为公司效率化和系统化改善的一部分,为公司效益带来显著提升.以下通过一些案例,展示利用excel公式和VBA进行自动化数据分析,数据汇总,网页表单自动提交在实际场景中的典型应用.相关的文件和代码可以在github下载. 自动化数据分析 以下是通过VBA自动

《深入浅出数据分析》-利用Excel的Solver求橡皮玩具的最大利润

背景:一玩具厂可以生产两种浴盆玩具,分别是橡皮鸭和橡皮鱼,并且原材料和生产时间都有所限制,求如何才分配生产两种玩具的数量才可以让厂商达到最大利润. 假设条件如下: 产品名称 数量   duck a   fish b   产品名称 单位所需材料数量   duck 100   fish 125   总需材料数量 100a+125*b   库存材料数量 50000   产品名称 单位利润   duck 5$   fish 4$   总利润 a*5+b*4   图1 表格数据解析:假设生产一只橡皮鸭需要

利用Excel画柱状图,并且包含最大最小值

如何利用Excel画出如上样式的图? 1.绘制柱状图.如何绘制柱状图,操作非常简单,选中数据,点击合适的图表样式即可. 2.添加误差线.选中已绘制好的图,添加误差线.如果误差线没有出现,可以使用”更多选项“一一添加误差线. 3.调整误差线的大小.可使用百分比,也可使用误差和偏差.