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. SSRS Report Knowledge Base

    1. 获取Textbox的值,根据Textbox值更改单元格颜色 Textbox值:=ReportItems!Textbox1.Value 当前单元格的值:=Me.Value =IIF(ReportI ...

  2. Hadoop学习笔记(4) ——搭建开发环境及编写Hello World

    Hadoop学习笔记(4) ——搭建开发环境及编写Hello World 整个Hadoop是基于Java开发的,所以要开发Hadoop相应的程序就得用JAVA.在linux下开发JAVA还数eclip ...

  3. 《MySQL 基础课程》笔记整理(进阶篇)(未完)

    一.MySQL服务安装及命令使用 安装过程就不写了,毕竟百度经验一大把 MySQL 官方文档 MySQL 参考手册中文版 1.MySQL简介 ​ RDBMS(Relational Database M ...

  4. linux设置静态获取ip

    vsphere client 创建虚拟机后,默认是动态获取ip ,如果想要改为静态ip: 修改网卡eth0 (不一定每个人都是eth0,比如有的是ens160) vim /etc/sysconfig/ ...

  5. python中循环删除list和dict类型注意事项

    列表和字典在循环操作(增删)时,其长度会改变 # 删除 li = [11, 22, 33, 44, 'rock']中索引为单数的元素 # 方法一 del li[1::2] print(li) # [1 ...

  6. AngularJS模块之$scope

    Angular中创建一个模块: angular.module("myApp",[]). controller("myController",function(& ...

  7. 快速数组对象取值与数组映射新数组--array.map

    array.map(callback,[ thisObject]); 1.map方法的作用不难理解,“映射”嘛,也就是原数组被“映射”成对应新数组 a)array.map(()=>值); [1, ...

  8. Activiti 配置Oracle不能自动创建表解决方法

    使用配置文件创建工作流表 <bean id="processEngineConfiguration" class="org.activiti.engine.impl ...

  9. How to install the NVIDIA drivers on Ubuntu 18.04 Bionic Beaver Linux

    Objective The objective is to install the NVIDIA drivers on Ubuntu 18.04 Bionic Beaver Linux. This a ...

  10. MySQL数据库备份与还原

    备份数据库 1.使用mysqldump命令备份 备份一个数据库:mysqldump -u 用户名 -p密码 数据库名 [表名1,表名2...]>备份文件路径及名字.sql           如 ...