1. 封装读取excel数据的方法:
import java.io.*;
import java.util.ArrayList;
import java.util.List;

import jxl.*;
import jxl.read.biff.BiffException;

public class TestExcel {
/**
* 将EXCEL表格按单元格读取,放入一个二维数组中。 <一句话功能简述> <功能详细描述>
*
* @param fileName
* 文件的名称,带路径
* @param sheetName
* excel的sheet的名称
* @param fromRownum
* 开始的行数
* @param endRownum
* 结束的行数
* @return
* @throws BiffException
* @throws IOException
* @see [类、类#方法、类#成员]
*/
public static String[][] getExcelData(String fileName, String sheetName,
int fromRownum, int endRownum) throws BiffException, IOException {
Workbook book = Workbook.getWorkbook(new File(fileName));
String[][] data = null;
Sheet st = book.getSheet(sheetName);
int rows = st.getRows();
int cols = st.getColumns();
if (endRownum > rows)
endRownum = rows;// 如果指定结束的行数大于excel表格内容的最大行数,结束的行数取excel的最大行数作为结束的行数
data = new String[endRownum - fromRownum + 1][cols];
int rRow = 0;
for (int iRow = fromRownum; iRow <= endRownum; iRow++) {
for (int iCol = 0; iCol < cols; iCol++) {
String val = st.getCell(iCol, iRow).getContents().trim();// 列,行
data[rRow][iCol] = val;
}
rRow++;
}
book.close();
return data;
}

}

2. 封装对象,这里以注册为例,故以注册信息为对象封装:

public class RegisterData {
public String iphoneN;
public String passN;
public String imgYz;
public String messYz;
public String errNote;
public void setiphoneN(String iphoneN){
this.iphoneN=iphoneN;
}
public String getiphoneN(){
return iphoneN;
}
public void setpassN(String passN){
this.passN=passN;
}
public String getpassN(){
return passN;
}
public void setimgYz(String imgYz){
this.imgYz=imgYz;
}
public String getimgYz(){
return imgYz;
}

public void setmessYz(String messYz){
this.messYz=messYz;
}
public String getmessYz(){
return messYz;

}
public void seterrNote(String errNote){
this.errNote=errNote;
}
public String geterrNote(){
return errNote;

}
}

3. 使用testng+selenium进行注册测试:

采用了DataProvider,由于必须是object或Iterator<Object[]>对象,故对步骤2读出来的对象转换了一下。

import java.util.ArrayList;

import java.util.Iterator;
import java.util.List;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;

public class RegisterTest {

static TestExcel ResEx=new TestExcel();
WebDriver regpage=new ChromeDriver();

@DataProvider(name = "testData")

public Iterator<Object[]> RegisterTest_data() {
List<RegisterData> datalist = new ArrayList<RegisterData>();
List<Object[]> dataToBe = new ArrayList<Object[]>();
try {

String[][] s = ResEx.getExcelData("F:\\Users\\Wangtest\\workspace\\TestNG\\data\\register.xls", "Sheet1", 1, 3);

for (int i = 0; i < s.length; i++) {
RegisterData data = new RegisterData();
data.setiphoneN(s[i][0]);
data.setpassN(s[i][1]);
data.setimgYz(s[i][2]);
data.setmessYz(s[i][3]);
data.seterrNote(s[i][4]);
datalist.add(data);
}

for (RegisterData userData : datalist)

{

dataToBe.add(new Object[] { userData } );

}

} catch (Exception e) {
e.printStackTrace();
}
return dataToBe.iterator();
}

@Test(dataProvider="testData")
public void f(RegisterData dataex)
throws Exception {

regpage.get("http://login.maijia.com/register.htm");
try {
Thread.sleep(3000);

regpage.findElement(By.name("mobile")).sendKeys(dataex.iphoneN);
regpage.findElement(By.name("loginPassword")).sendKeys(dataex.passN);
regpage.findElement(By.name("validateCode")).sendKeys(dataex.imgYz);
regpage.findElement(By.name("identifyCode")).sendKeys(dataex.messYz);
regpage.findElement(By.xpath("//button[contains(.,'注册')]")).click();
WebElement tips=regpage.findElement(By.xpath("//*[@id='J_Page-register']/div/div[2]/div/form/div[2]/div[3]/div"));
if(tips.getText().matches(dataex.errNote)){

System.out.println(dataex.errNote+":pass");
Thread.sleep(2000);
}
else{
System.out.println(dataex.errNote+":error");

Thread.sleep(2000);
}

}
catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();}

}
}

Selenium应用代码(读取excel的内容进行注册的案例)的更多相关文章

  1. PHP读取Excel文件内容

    PHP读取Excel文件内容   项目需要读取Excel的内容,从百度搜索了下,主要有两个选择,第一个是PHPExcelReader,另外一个是PHPExcel.   PHPExcelReader比较 ...

  2. 使用POI读取excel文件内容

    1.前言 项目中要求读取excel文件内容,并将其转化为xml格式.常见读取excel文档一般使用POI和JExcelAPI这两个工具.这里我们介绍使用POI实现读取excel文档. 2.代码实例: ...

  3. C# 读取Excel表格内容,以及NPOI的使用

    在实际的开发中,我们可能需要读写word或者Excel的内容,在我开发的项目中,需要读取Excel的内容,并将相对应的内容存储到数据库中,这里简单跟大家分享一下,希望能够帮助一些人. 我相信在读写wo ...

  4. java的poi技术下载Excel模板上传Excel读取Excel中内容(SSM框架)

    使用到的jar包 JSP: client.jsp <%@ page language="java" contentType="text/html; charset= ...

  5. 关于jquery js读取excel文件内容 xls xlsx格式 纯前端

    附带参考:http://blog.csdn.net/gongzhongnian/article/details/76438555 更详细导入导出:https://www.jianshu.com/p/7 ...

  6. c# 读取 excel文件内容,写入txt文档

    1 winform 读取excel文档 1)点击button按钮,弹出上传excel窗口 private void button_headcompany_Click(object sender, Ev ...

  7. java 读取 excel 表格内容

    一.添加依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</ar ...

  8. 使用NPOI读取Excel表格内容并进行修改

    前言 网上使用NPOI读取Excel文件的例子现在也不少,本文就是参考网上大神们的例子进行修改以适应自己需求的. 参考博文 http://www.cnblogs.com/restran/p/38894 ...

  9. phpcms代码读取文章的内容 实用可行的方法

    在使用phpcms做网站的时候经常遇到读取网站的内容作为推荐,而不是描述.这里使用可行的方法交你如何读取内容推荐.方法有两个,第一种执行的效率低,第二个效率高些. 1. {pc:get sql=&qu ...

随机推荐

  1. git config简写命令

    在多人协作开发时,一般用git来进行代码管理.git有一些命令如:git pull . git push等等,这些命令可以设置alias,也就是缩写.如:git pull 是 git pl, git ...

  2. 一、URL和URLConnection

    一.简述: 在Java网络编程中,我们最常听到的一个单词是URL.URL标识了一个资源,并可以通过URL来获取这个资源.我们不知道资源具体是什么,也不需要关心怎么获取.你只需要拿到一个URL,你就可以 ...

  3. 互联网轻量级框架SSM-查缺补漏第二天

    简言:第一天没咋看,因为看的时候已经是下午了.今天上午也因为工作上的事没咋看,本来想按照天去写的,但是内容会太散吧.我决定把整块的内容放在一起写了.天数啥的,就那样把. 还有,我只是言简意赅的去总结一 ...

  4. JavaWeb之JSP原理

    1.为什么需要JSP? 在很多动态网页中,绝大部分内容都是固定不变的,只有局部内容需要动态产生和改变.如果使用Servlet程序来输出只有局部内容需要改动的网页,其中所有的静态内容也需要程序员用jav ...

  5. Windows安装配置xampp

    建议大家直接看原文 1.安装XAMPP 进入https://www.apachefriends.org/zh_cn/index.html页面下载XAMPP 2 3.打开xampp控制版 4.修改apa ...

  6. 51Nod1782 圣诞树

    传送门 我居然忘写题解啦!(记忆废) 总的来说这题就是道大数据结构……看我代码长度就知道了,真的是长得要死…… …… 这题的操作都是路径修改单点查询,因此可以树上差分,问题就变成了维护子树中的所有标记 ...

  7. 04_dubbo_ioc

    [dubbo的IOC实现方法] dubbo的IOC具体实现在:T injectExtension( T instance )方法中,该方法在3个地方被使用: ExtensionLoader.getEx ...

  8. 05_ActiveMQ的selectors

    [ JMS Selectors ] JMS Selectors用于在订阅中,基于消息属性对消息进行过滤. 以下是个Selectors的例子:Java代码 consumer = session.crea ...

  9. DUANG~ 万网轻云服务器,大促狂欢,不仅仅免单!

    DUANG~ 万网轻云服务器,大促狂欢,不仅仅免单!   当老板第一次知道我们要做活动的时候,其实是拒绝的.DUANG~ 打折.降价.挥泪甩卖…太俗套.客户看到一定骂我们,根本没有诚意. 所以轻云大促 ...

  10. 【小记录】关于dojo中的on事件

    今天碰到一个现象,若是一个函数中存在一个on事件(例如点击事件),在该函数连续触发两次之后在去触发里面的on事件,会发现改时间所对应的函数被调用了两次,若父函数被连续触发N次后再取触发on事件,其对应 ...