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. Expression Blend实例中文教程(7) - 动画基础快速入门Animation

    通过前面文章学习,已经对Blend的开发界面,以及控件有了初步的认识.本文将讲述Blend的一个核心功能,动画设计.大家也许注意到,从开篇到现在,所有的文章都是属于快速入门,是因为这些文章,都是我曾经 ...

  2. request.getRequestURL()和request.getRequestURI()的区别

    request.getRequestURL() 返回全路径 request.getRequestURI() 返回除去host(域名或者ip)部分的路径 request.getContextPath() ...

  3. Windbg 脚本命令简介 一

    Windbg  脚本命令简介 一 Windbg command r: registers的简写,可以显示或修改寄存器的值.浮点寄存器的值.定义别名变量. 可以显示当前线程下的寄存器值. The r c ...

  4. Android加载大图片实例详解

    摘要:在Android下采用ARGB表示颜色,每个像素占四个字节.其加载图片申请空间时与图片的实际大小没有关系,与像素有关系.

  5. jdk动态代理与cglib代理、spring Aop代理原理-代理使用浅析

    原创声明:本博客来源为本人原创作品,绝非他处摘取,转摘请联系博主 代理(proxy)的定义:为某对象提供代理服务,拥有操作代理对象的功能,在某些情况下,当客户不想或者不能直接引用另一个对象,而代理对象 ...

  6. package和package-lock区别;dependencies和devDependencies区别

    package和package-lock package.json: 主要用来定义项目中需要依赖的包 package-lock.json: 在 npm install时候生成一份文件,用以记录当前状态 ...

  7. 响应式(2)——bootstrap的响应式

    <meta name="viewport" content="width=device-width,user-scalable=no"/> < ...

  8. Android JazzyViewPager

    JazzyViewPager: package com.itau.jingdong.widgets.jazzviewpager; import java.util.HashMap; import ja ...

  9. 【Leetcode】【Medium】Partition List

    Given a linked list and a value x, partition it such that all nodes less than x come before nodes gr ...

  10. Linux账号管理和ACL

    by zjmyster version :1.2 Linux账号管理和ACL权限设置: 主要相关配置文件:/etc/passwd /etc/shadow /etc/group /etc/gshadow ...